Commit 44262997 by 连敬荣

Merge branch 'feature/lianjingrong/20210524' into 'master'

Feature/lianjingrong/20210524

See merge request !7
parents e61836c3 d1b63cb4
...@@ -47,7 +47,6 @@ class ApiController extends Controller ...@@ -47,7 +47,6 @@ class ApiController extends Controller
$input["user_id"] = $this->user_id; #用户id $input["user_id"] = $this->user_id; #用户id
$input["email"] = $this->email; #邮箱 $input["email"] = $this->email; #邮箱
$input["user_name"] = $this->user_name; #用户中文名称 $input["user_name"] = $this->user_name; #用户中文名称
$this->$id($input, $id); $this->$id($input, $id);
} }
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Http\Utils\ApiCode;
use App\Http\Utils\RequestHelper;
use App\Http\Utils\Response;
use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Validation\ValidatesRequests;
...@@ -11,4 +14,19 @@ use Illuminate\Foundation\Auth\Access\AuthorizesResources; ...@@ -11,4 +14,19 @@ use Illuminate\Foundation\Auth\Access\AuthorizesResources;
class Controller extends BaseController class Controller extends BaseController
{ {
use AuthorizesRequests, AuthorizesResources, DispatchesJobs, ValidatesRequests; use AuthorizesRequests, AuthorizesResources, DispatchesJobs, ValidatesRequests;
public function setError($errMsg, $errCode = ApiCode::API_CODE_ERROR, $data = null)
{
Response::setError($errMsg, $errCode, $data);
}
public function setSuccess($data, $code = ApiCode::API_CODE_SUCCESS, $msg = "")
{
Response::setSuccess($data, $code, $msg);
}
public function user()
{
return RequestHelper::getUser();
}
} }
<?php
namespace App\Http\Controllers;
use App\Http\Queue\RabbitQueueModel;
use App\Http\Utils\ApiCode;
use App\map\InquiryMap;
use App\map\QuoteMap;
use App\Model\BestGoodsModel;
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 App\Model\QuoteModel;
use Dompdf\Exception;
use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
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();
$inquiryItemsModel = new InquiryItemsModel();
if (count($input) == 0 || $input == ""){
Export( [1001,"插入数据不得为空"]);exit();
}
if (empty($input["goods_name"])) {
Export(ApiCode::API_CODE_DATA_EMPTY, "请选择型号名称");
exit();
}
if (empty($input["inquiry_id"])) {
Export (ApiCode::API_CODE_DATA_EMPTY, "询价单ID不得为空");
exit();
}
if (empty($input["brand_s"])) {
Export (ApiCode::API_CODE_DATA_EMPTY, "请选择品牌名称");
exit();
}
if (empty($input["inquiry_number"])) {
Export (ApiCode::API_CODE_DATA_EMPTY, "请输入询价数量");
exit();
}
if (empty($input["batch"])) {
Export (ApiCode::API_CODE_DATA_EMPTY, "请输入批次要求");
exit();
}
if (empty($input["delivery_time"])) {
Export (ApiCode::API_CODE_DATA_EMPTY, "请选择交货日期");
exit();
}
try{
$con = DB::connection('rfq');
$con->beginTransaction();
#插入明细
$brandInfo = json_decode($input["brand_s"],true);
$check = $inquiryItemsModel->checkUniqueInquiryItemsDetail($input);//检查是否存在相同的明细
if ($check >0){
throw new Exception("已存在重复此型号品牌!");
}
$insertArr= [
"inquiry_id"=>$input["inquiry_id"] ,
"goods_name"=>@$input["goods_name"] ? $input["goods_name"] : "" ,
"brand_id"=>@$brandInfo[0]["value"],
"brand_name"=>@$brandInfo[0]["name"],
"class_id2"=>@$input["class_id2"] ? $input["class_id2"] : 0 ,
"class_id2_name"=>@$input["class_id2_name"] ? $input["class_id2_name"] : "" ,
"inquiry_number"=>@$input["inquiry_number"] ? $input["inquiry_number"] :0 ,
"target_price"=>@$input["target_price"] ? $input["target_price"] : 0,
"delivery_time"=>@$input["delivery_time_unit"] == "天"? $input["delivery_time"] :$input["delivery_time"]*7,
"batch"=>@$input["batch"] ? $input["batch"] : "" ,
"assign_type"=>$input["pur_s"] !== "" ? 1: 2,
"remark"=>@$input["remark"] ? $input["remark"] : "",
"create_time"=>time() ,
"update_time"=>time() ,
];
if (isset($input['is_quote']) && $input['is_quote'] == 'on') { // 无需报价,询价状态变为已确定
$insertArr['is_quote'] = -1;
$insertArr['status'] = 5;
}
$inquiryItemsId = $inquiryItemsModel->insertGetId($insertArr);
#插入销售报价表
$reportArr = [];
$reportArr['inquiry_id'] = $input['inquiry_id'];
$reportArr['inquiry_items_id'] = $inquiryItemsId;
$reportArr['create_time'] = time();
(new InquiryItemsReportModel())->insert($reportArr);
#插入指定领取人
if ($input["pur_s"] !== "" ){
$purArr = json_decode($input["pur_s"],true);
$assignInsert = []; #指定领取人
foreach ($purArr as $f=>$c){
array_push($assignInsert,[
"inquiry_items_id"=>$inquiryItemsId,
"assign_uid"=>$c["uid"],
"assign_name"=>$c["user_name"],
"create_time"=>time(),
]);
}
if(count($assignInsert) >0){ #插入指定人
(new InquiryItemsAssignModel())->insert($assignInsert);
}
// $inquiryItemsModel->where('id', $inquiryItemsId)->update(['status' => 4]); // 存在指定采购,则标记状态为已领取
$inquiryItemsModel->updateInquiryItemsStatus($inquiryItemsId,$this->STATUS_CLOSED);
}
#日志
\App\Model\OpLogModel::log([
'types'=>1,
'relation_id'=>$inquiryItemsId, #明细id
'relation_sn'=>(new InquiryModel())->FindInquirySn($input["inquiry_id"]),
'content'=>'单个添加询价',
'create_uid'=>$userInfo['user_id'],
'create_name'=>$userInfo["user_name"],
]);
$con->commit();
Export (ApiCode::API_CODE_SUCCESS,"添加成功");
exit();
}catch (\Exception $e) {
$con->rollBack();
Export(ApiCode::API_CODE_ERROR,"添加失败:".$e->getMessage());
exit();
}
}
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 = $inquiryModel->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){//修改单挑询价明细
$input = $request->input();
$userInfo = $this->user();
$inquiryItemsModel = new InquiryItemsModel();
$inquiry_items_id = @$input["inquiry_items_id"] ? $input["inquiry_items_id"] : "" ;
if (!$inquiry_items_id){
return [ApiCode::API_CODE_DATA_INVALID,"修改明细ID不得为空"];
}
if (empty($input["goods_name"])) return [ApiCode::API_CODE_DATA_EMPTY, "请选择型号名称"];
if (empty($input["brand_s"])) return [ApiCode::API_CODE_DATA_EMPTY, "请选择品牌名称"];
if (empty($input["inquiry_number"])) return [ApiCode::API_CODE_DATA_EMPTY, "请输入询价数量"];
if (empty($input["batch"])) return [ApiCode::API_CODE_DATA_EMPTY, "请输入批次要求"];
if (empty($input["delivery_time"])) return [ApiCode::API_CODE_DATA_EMPTY, "请选择交货日期"];
try{
$con = DB::connection('rfq');
$con->beginTransaction();
$InquiryItemsAssignModel = (new InquiryItemsAssignModel());
#更新明细
$inputrandInfo = json_decode($input["brand_s"],true);
$input["brand_id"] = $inputrandInfo[0]["value"];
$input["brand_name"] = $inputrandInfo[0]["name"];
$updateArr= [
"goods_name"=>@$input["goods_name"] ? $input["goods_name"] : "" ,
"brand_id"=>@$input["brand_id"] ? $input["brand_id"] : 0,
"brand_name"=>@$input["brand_name"] ? $input["brand_name"] : "",
"class_id2"=>@$input["class_id2"] ? $input["class_id2"] : 0 ,
"class_id2_name"=>@$input["class_id2_name"] ? $input["class_id2_name"] : "" ,
"inquiry_number"=>@$input["inquiry_number"] ? $input["inquiry_number"] :0 ,
"target_price"=>@$input["target_price"] ? $input["target_price"] : 0,
"delivery_time"=>@$input["delivery_time"] ? $input["delivery_time"] : "",
"batch"=>@$input["batch"] ? $input["batch"] : "" ,
"assign_type"=>@$input["pur_s"] != "" ? 1: 2,
"remark"=>@$input["remark"] ? $input["remark"] : "",
"flag"=>0, #重新自动报价
"create_time"=>time() ,
"update_time"=>time() ,
];
// 无需报价没勾选,则默认为待报价
if (isset($input['is_quote']) && $input['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 (@$input["pur_s"] != ""){
$purArr = json_decode($input["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 = $input["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'=>$userInfo['user_id'],
'create_name'=>$userInfo["user_name"],
]);
$con->commit();
Export (ApiCode::API_CODE_SUCCESS,"修改成功");
exit();
}catch (\Exception $e) {
$con->rollBack();
Export (ApiCode::API_CODE_ERROR,"修改失败".$e->getMessage());
exit();
}
}
public function takeInquiry(Request $request){
$input = $request->input();
$userInfo = $this ->user();
$input['user_id'] = $userInfo['user_id'];//赋值用户信息
$input['user_name'] = $userInfo['user_name'];
$input['email'] = $userInfo['email'];
$inquiryItemsModel = new InquiryItemsModel();
$id = $input['id'];
if (!$id){
Export (ApiCode::API_CODE_PARAM_REQUIRED, '参数缺失');exit();
}
try {
// $this->where('id', $id)->update(['assign_type' => 2]);
$InquiryItemsAssignModel = new InquiryItemsAssignModel;
$map = [];
$map['inquiry_items_id'] = $id;
$map['assign_uid'] = $input['user_id'];
$map['assign_type'] = 2;
$res = $InquiryItemsAssignModel->where($map)->value('id');
if ($res) Export (ApiCode::API_CODE_INQUIRY_HAS_BEEN_TAKEN, '该询价已领取');
$InquiryItemsAssignModel->assign($id, $input['user_id']);
// 添加操作日志
$inquiry_items = $inquiryItemsModel->find($id);
// 检查询价单状态,如果状态为默认的 待报价 状态,那么更改为 已领取状态
if ($inquiry_items['status'] == InquiryMap::status_ready){
$inquiryItemsModel->where('id', $id)->update(['status' => InquiryMap::status_fix]);
}
$data = [];
$data['types'] = 1;
$data['relation_id'] = $id;
$data['content'] = '领取询价,商品名称:'.$inquiry_items['goods_name'];
$data['create_uid'] = $input['user_id'];
$data['create_name'] = $input['user_name'];
\App\Model\OpLogModel::log($data);
} catch (Exception $e) {
Export (ApiCode::API_CODE_TAKE_INQUIRY_ERROR, $e->getMessage());
}
Export (ApiCode::API_CODE_SUCCESS, '领取成功,请及时报价');
}
}
<?php
namespace App\Http\Controllers;
use App\Model\CommonModel;
use App\Model\InquiryItemsAssignModel;
use App\Model\InquiryItemsModel;
use App\Model\InquiryModel;
use Illuminate\Http\Request;
class InquiryController extends Controller
{
// 关闭询价单
public function close(Request $request)
{
$inquiry_id = $request->input("inquiry_id");
$remark = $request->input("remark");
$user = $this->user();
$InquiryModel = new InquiryModel();
$inquiry_info = $InquiryModel->getInfoById($inquiry_id);
$inquiry_close_res = $InquiryModel->closeById($inquiry_id, $remark);
if ($inquiry_close_res){
// 关闭询价单-明细
$InquiryItemsModel = new InquiryItemsModel;
$InquiryItemsModel->closeByInquiryId($inquiry_id);
$inquiry_related_items = $InquiryItemsModel->getListByInquiryId($inquiry_id);
if ($inquiry_related_items){
$inquiry_item_ids = array_column($inquiry_related_items, 'id');
// 给领取询价单用户发送消息
$InquiryItemsAssignModel = new InquiryItemsAssignModel();
$assign_uids = $InquiryItemsAssignModel->getUniqAssignUidsByInquiryItemIds($inquiry_item_ids);
$CommonModel = new CommonModel();
foreach ($assign_uids as $assign_uid){
$CommonModel->send_msg($assign_uid,$user["user_name"].'已关闭询价,询价单号:'. $inquiry_info['inquiry_sn']);
}
}
}
$response_data = [0, "关闭整个询价单成功"];
Export($response_data);
}
//新增询价,sku查询接口
public function ApiSkuList(Request $request){
$k = $request->input('k');
$types = $request->input('types');
$url = Config('website.search_url'). "/search/spu/think?spu_name=".$k;
$res = post_curl($url,[]);
$resArr = \GuzzleHttp\json_decode($res,true);
$temp = [];
if (count($resArr["data"]) == 0 && $types == 1){ #返回没查到的数据
array_push($temp,["value"=>"","name"=>$k]);
}else{
foreach ($resArr["data"] as $k=>$v){
array_push($temp,["value"=>json_encode($v),"name"=>$v["spu_name"]." 品牌:".$v["brand_name"]]);
}
}
echo json_encode($temp,JSON_UNESCAPED_UNICODE) ;
}
//新增询价,品牌查询接口
public function ApiBrandList(Request $request){
$k = $request->input('k');
$types = $request->input('types');
}
}
\ No newline at end of file
<?php
namespace App\Http\Controllers;
use App\Http\Utils\ApiCode;
use App\Http\Utils\AppType;
use App\Http\Utils\RequestHelper;
use App\map\InquiryMap;
use App\map\QuoteMap;
use App\Model\BestGoodsModel;
use App\Model\CommonModel;
use App\Model\InquiryItemsAssignModel;
use App\Model\InquiryItemsModel;
use App\Model\InquiryItemsUrgeModel;
use App\Model\InquiryModel;
use App\Model\LieBrandModel;
use App\Model\QuoteModel;
use Illuminate\Http\Request;
use DB;
use RedisDB;
class SearchController extends Controller
{
//新增询价,sku查询接口
public function getSkuList(Request $request)
{
$sku = $request->input('k');
$types = $request->input('types');
$url = Config('website.search_url') . "/search/spu/think?spu_name=" . $sku;
$res = post_curl($url, []);
$resArr = \GuzzleHttp\json_decode($res, true);
$temp = [];
if (count($resArr["data"]) == 0 && $types == 1) { #返回没查到的数据
array_push($temp, ["value" => "", "name" => $sku]);
} else {
foreach ($resArr["data"] as $k => $v) {
array_push($temp, ["value" => json_encode($v), "name" => $v["spu_name"] . " 品牌:" . $v["brand_name"]]);
}
}
echo json_encode($temp, JSON_UNESCAPED_UNICODE);
// $this->setSuccess($temp);
}
//新增询价,品牌查询接口
public function getBrandList(Request $request)
{
echo 111;exit();
$k = $request->input('k');
$types = @$request->input('types')?@$request->input('types'):1;
$lieBrandModel = new LieBrandModel();
$lieBrandModel->getBrandList($k,$types);
}
public function checkUniqueGoods(Request $request )
{
$InquiryItemsModel = new InquiryItemsModel();
$InquiryItemsModel->checkGoods($request->input());
}
public function getInquiryList(Request $request){
$input = $request->input();
$userInfo = $this->user();
ExportLayui($this->getList($input,0,$userInfo));
// ExportLayui((new InquiryModel())->getList($input));
}
protected function getList($input = [],$export = 0,$userInfo=[])//获取询价列表
{
$user_id = @$userInfo["user_id"];
$user_name = @$userInfo["user_name"];
$rqpConn = DB::connection('rfq');
$list = $rqpConn->table('inquiry as a')
->join('inquiry_items as b', 'a.id', '=', 'b.inquiry_id')
->select(DB::Raw("lie_a.inquiry_sn,lie_a.currency,lie_a.status as status_a,lie_a.user_name,lie_a.create_name,lie_b.*"))
->where(function ($query) use ($input) {
if (@$input["types"] == 5){
$query->where('a.status', 0);
}else{
$query->whereIn('a.status', [-1,1]);
}
foreach ($input as $k => $v) {
$v = trim($v);
if (empty($v)) {
continue;
}
switch ($k) {
case "inquiry_sn":
$query->whereRaw('lie_a.'.$k.' like "%' . $v . '%" ');
break;
case "inquiry_id":
$query->where('a.id', '=', $v);
break;
case "goods_name":
case "brand_name":
$query->whereRaw('lie_b.'.$k.' like "%' . $v . '%" ');
break;
case "customer_name":
$query->whereRaw('lie_a.user_name like "' . $v . '%" ');
break;
case "status":
$query->whereRaw('lie_b.status in ('.rtrim($v,",").')');
break;
case "create_uid":
$query->where('a.create_uid', '=', $v);
break;
case "assign_type":
$query->where('b.assign_type', '=', $v);
break;
case "start_time":
$query->where('b.create_time', '>=', strtotime($v));
break;
case "end_time":
$query->where('b.create_time', '<=', strtotime($v) );
break;
}
}
});
#不同类别查询
switch (@$input["types"]) {
case "1": //我的询价
$list = $list->where('a.create_uid', $user_id);
break;
case "2": //我的已关闭询价
$list = $list->where('a.create_uid', $user_id)->where("b.status", -1);
case "3": //所有询价
$perm = new PermController;
$role = $perm->getUserRole($user_id, $user_name); // 用户角色
switch ($role) {
case 2: // 销售查看下级
$sub_sale_ids = $perm->getSubSaleId($user_id);
$list = $list->whereIn('a.create_uid', $sub_sale_ids)->whereIn('a.status', [-1, 1]);
break;
case 3: // 销售查看自己
$list = $list->where('a.create_uid', $user_id)->whereIn('a.status', [-1, 1]);
break;
}
break;
}
$page = isset($input['p']) ? $input['p'] : $input['page'];
#排序
if (@$input["inquiry_number_sort"]){
$list = $list->orderBy('b.inquiry_number', $input["inquiry_number_sort"]);
}else if (@$input["create_time_sort"]){
$list = $list->orderBy('b.create_time', $input["create_time_sort"]);
}else{
$list = $list->orderBy('b.id', "desc");
}
$list = $list->paginate(@$input['limit'] ? $input["limit"] : 10, ['*'], 'p', @$page ? $page : 1)->toArray();
if (!$list) return [ApiCode::API_CODE_NODATA, '没有数据'];
$QuoteModel = new QuoteModel();
$InquiryItemsAssignModel = new InquiryItemsAssignModel();
$BestGoodsModel = new BestGoodsModel();
$Redis = \RedisDB::connection();
foreach ($list['data'] as $k => &$v) {
$inquiry_items_id = $v["id"]; #明细id
//报价
$v['status_val'] = InquiryMap::$status[$v["status"]];
if ($v["status_val"] == "已报价") {
$count = $QuoteModel->where("inquiry_items_id", $inquiry_items_id)->whereIn("status", QuoteMap::$status_used)->count();
$v['status_val'] = $v['status_val'] . "(" . $count . ")";
}
$v['create_time'] = timeToDate($v['create_time']); //创建时间
$v["customer_name"] = $v['user_name'] ;
#目标价
if (@$input["types"] != 5){
$v['target_price'] = InquiryMap::$currency_sign[$v["currency"]] . $v['target_price']."\t"; // 客户目标报价
}
#交货日期
$v['delivery_time'] = $v['delivery_time'] > 6 ? ($v['delivery_time']/7).'周' : $v['delivery_time']."天";
#查询所有报价
$v['quote_price'] = "--";
$quote = $QuoteModel->select("status","currency","price_origin","price_rmb")
->where("inquiry_items_id", $v["id"])
->whereIn("status", QuoteMap::$status_used)
->orderby("status","desc")
->orderby("price_rmb","asc")
->first();
if ($quote){
$b = $quote->toArray();
$lowerPrice = $b["currency"] == 1 ? "¥".$b["price_rmb"]:InquiryMap::$currency_sign[$b["currency"]].$b["price_origin"];
$v["quote_price"] = $lowerPrice;
}
#查询指定采购
$v["assign_name"] = "";
if ($v["assign_type"] == 1){
$assign = $InquiryItemsAssignModel->select(DB::Raw("GROUP_CONCAT(assign_name) assign_name"))->where("inquiry_items_id",$inquiry_items_id)->first();
if ($assign){
$v["assign_name"] = $assign->assign_name;
}
}
$v['inquiry_sn_origin'] = $v["inquiry_sn"];
// 查询历史报价数
$v['history_quote_count'] = $QuoteModel->GetHistoryQuotedCount($v['goods_name']);
// 查询优选匹配数
$v['best_count'] = $BestGoodsModel->getCountByWhere([["goods_name", '=', $v['goods_name']], ["g_status", '=', BestGoodsModel::STATUS_ENABLE]]);
// 在Redis集合中检查是否有新的报价
if ($export == 0){
$res = $Redis->SISMEMBER('frq_quote_urge', $v['id']);
if ($res) {
$v['inquiry_sn'] = $v['inquiry_sn'] . "<span style='color:#f2f2f2;'>&nbsp;*</span>";
}
}
$v['is_quote_val'] = $v['is_quote'] == 1 ? '是' : '否';
}
$data = $list['data'];
if (@$input["is_export"] == 1) { #如果是导出
$data = (new InquiryModel())->clearExport($data);
}
return [ApiCode::API_CODE_SUCCESS, '成功', $data, $list['total']];
}
public function getInquiryListPool(Request $request){
$input = $request->input();
$userInfo = $this->user();
ExportLayui($this->getListPool($input,$userInfo));
}
protected function getListPool($input = [],$userInfo)
{
$user_id = @$userInfo["user_id"];
$user_name = @$userInfo["email"];
$rqpConn = DB::connection('rfq');
// type值存在,1-报价管理询价池,2-已领取的询价,3-指定/领取的当前用户最新询价8条,4-指定/领取的当前用户最新催价8条
$type = isset($input['type']) ? $input['type'] : 0;
$list = $rqpConn->table('inquiry as a')->join('inquiry_items as b', 'a.id', '=', 'b.inquiry_id');
if ($type == 1) {
$list = $list->leftJoin('inquiry_items_assign as c', 'b.id', '=', 'c.inquiry_items_id');
} else if ($type == 2) {
$list = $list->join('inquiry_items_assign as c', 'b.id', '=', 'c.inquiry_items_id')->where('c.assign_uid', $user_id);
} else if ($type == 3) {
$list = $list->join('inquiry_items_assign as c', 'b.id', '=', 'c.inquiry_items_id')
->where('c.assign_uid', $user_id)
->where('b.status', 1); // 待报价
} else if ($type == 4) {
$list = $list->join('inquiry_items_assign as c', 'b.id', '=', 'c.inquiry_items_id')
->join('inquiry_items_urge as u', 'b.id', '=', 'u.inquiry_items_id')
->where('c.assign_uid', $user_id);
}
$list = $list->select(DB::Raw("lie_a.inquiry_sn,lie_a.currency,lie_a.status as status_a,lie_a.user_name,lie_a.com_name,lie_a.create_name,lie_a.create_time as inquiry_ctime, lie_a.remark as inquiry_remark, lie_b.*, lie_c.id as c_id, lie_c.assign_type as c_assign_type"))
->where(function ($query) use ($input, $type, $user_id) {
foreach ($input as $k => $v) {
$v = trim($v);
if (empty($v)) {
continue;
}
switch ($k) {
case "inquiry_sn":
$query->where('a.inquiry_sn', '=', $v);
break;
case "goods_name":
case "brand_name":
$query->whereRaw('lie_b.' . $k . ' like "' . $v . '%"');
break;
case "status":
$query->where('b.status', '=', $v);
break;
case "create_uid":
$query->where('a.create_uid', '=', $v);
break;
case "assign_type":
$query->where('c.assign_type', '=', $v);
break;
case "start_time":
$query->where('a.create_time', '>=', strtotime($v));
break;
case "end_time":
$query->where('a.create_time', '<=', strtotime($v) + 86399);
break;
}
}
/**
* 询价池展示条件:
* 1. 询价单启用状态;
* 2. 询价明细需过滤无需报价、已关闭、已确认和被指定的类型
* 3. 询价明细分配表需过滤当前用户或不存在的(未指定或领取的)
*/
if ($type == 1) {
$query->where('a.status', 1)
->whereNotIn('b.status', [-1, 5])
->where('b.assign_type', 2)
->whereRaw('(lie_c.assign_uid != '.$user_id.' or lie_c.assign_uid is NULL)');
// $time = time() - 7200; // 待报价的询价两小时后在询价池展示
// $query->WhereRaw('((lie_c.assign_type=2 and lie_c.assign_uid <> '.$user_id.') or (lie_c.assign_type=1 and lie_b.status=1 and lie_b.create_time < ' . $time . '))');
} else {
$query->whereIn('a.status', [-1, 1]);
}
});
if ($type == 1 || $type == 4) { // 多条重复催价情况下去重
$list = $list->groupBy('b.id');
}
// dump($list->getBindings());
// dump($list->toSql());
// $tmp = str_replace('?', '"'.'%s'.'"', $list->toSql());
// $tmp = vsprintf($tmp, $list->getBindings());
// echo $tmp;
// exit;
$page = isset($input['p']) ? $input['p'] : $input['page'];
$list = $list->orderBy('b.id', 'desc')->paginate(@$input['limit'] ? $input["limit"] : 10, ['*'], 'p', @$page ? $page : 1)->toArray();
if (!$list) return [20001, '没有数据'];
$QuoteModel = new QuoteModel();
$InquiryItemsUrgeModel = new InquiryItemsUrgeModel;
$InquiryItemsAssignModel = new InquiryItemsAssignModel;
foreach ($list['data'] as $k => &$v) {
//报价
$v['status_val'] = InquiryMap::$status[$v["status"]];
if ($v["status_val"] == "已报价") {
$count = $QuoteModel->where('inquiry_items_id', $v['id'])->whereIn("status", QuoteMap::$status_used)->count();
$v['status_val'] = $v['status_val'] . "(" . $count . ")";
}
$v["customer_name"] = $v['com_name'] == "" ? $v['user_name'] : $v['com_name'];
$v['create_time'] = timeToDate($v['create_time']); //创建时间
$currency_sign = InquiryMap::$currency_sign[$v["currency"]];
$v['target_price'] = $currency_sign . $v['target_price']; // 客户目标报价
if ($type == 2) { // 已领取的询价列表
$v['assign_type_val'] = $v['c_assign_type'] == 1 ? '指定' : '领取'; // 指定/领取
$price_field = $v['currency'] == 1 ? 'price_rmb' : 'price_origin';
$quote = $QuoteModel->where(['inquiry_items_id' => $v['id'], 'create_uid' => $user_id])->orderBy('id', 'desc')->first();
// 我的报价
$v['self_quote'] = $quote ? $currency_sign . $quote[$price_field] . '(' . array_get(Config('quote.quote_status'), $quote['status'], '') . ')' : '---';
// 在Redis集合中检查用户是否被催报价
$res = RedisDB::sIsMember('frq_inquiry_items_urge', $v['id'] . '-' . $user_id);
$v["inquiry_sn_origin"] = $v['inquiry_sn'];
if ($res) {
$urge = $InquiryItemsUrgeModel->getLastInfo($v['id']);
$v['inquiry_sn'] = $v['inquiry_sn'] . "<span style='color:#ff0000;'>(催)</span>";
}
}
$v['assign_count'] = $InquiryItemsAssignModel->GetAssignCountByInquiryId($v['id']);
$v['delivery_time'] = $v['delivery_time'] > 6 ? ($v['delivery_time']/7).'周' : $v['delivery_time']."天";
}
return [ApiCode::API_CODE_SUCCESS, '成功', $list['data'], $list['total']];
}
public function getQuoteList(Request $request, $export = '')
{
$quoteModel = new QuoteModel();
$input = $request->input();
$userInfo = $this->user();
$page = $input['page'];
$limit = $input['limit'];
$type = $input['type']; // 1-我的报价,2-所有报价,3-报价草稿,4-销售首页
$input['user_id'] = $userInfo['user_id'];//赋值用户信息
$input['user_name'] = $userInfo['user_name'];
$input['email'] = $userInfo['email'];
$map['inquiry_sn'] = isset($input['inquiry_sn']) ? trim($input['inquiry_sn']) : ''; // 询价单号
$map['goods_name'] = isset($input['goods_name']) ? trim($input['goods_name']) : ''; // 型号
$map['brand_name'] = isset($input['brand_name']) ? trim($input['brand_name']) : ''; // 品牌
$map['quote_sn'] = isset($input['quote_sn']) ? trim($input['quote_sn']) : ''; // 报价单号
$map['status'] = isset($input['status']) ? $input['status'] : ''; // 报价状态
$map['source'] = isset($input['source']) ? $input['source'] : ''; // 来源
$map['start_time'] = !empty($input['start_time']) ? strtotime($input['start_time']) : '';
$map['end_time'] = !empty($input['end_time']) ? strtotime($input['end_time']) + 86399 : '';
$map = array_filter($map) ? $map : [];
$field = [
'q.id',
'q.inquiry_id',
'q.inquiry_sn',
'q.inquiry_items_id',
'q.quote_sn',
'q.source',
'q.price_origin',
'q.price_rmb',
'q.price_other',
'q.currency',
'q.goods_name as quote_goods_name',
'q.brand_name as quote_brand_name',
'q.supplier_id',
'q.supplier_name',
'q.quote_number',
'q.status',
'q.create_uid',
'q.create_name',
'q.delivery_time',
'q.batch',
'q.create_time',
"q.tax_rate",
"q.mpq",
"q.moq",
"q.remark",
"q.expire_time",
'it.goods_name',
'it.brand_name',
'it.inquiry_number',
];
// if ($map) {
$list = $quoteModel->commonQuery($map, $input);
// } else {
// $list = $this->from('quote as q')
// ->join('inquiry_items as it', 'q.inquiry_items_id', '=', 'it.id');
// }
$map['create_uid'] = isset($input['create_uid']) ? $input['create_uid'] : ''; // 报价制单人
if ($type == 1) {
$list = $list->where('q.create_uid', $input['user_id'])->whereNotIn('q.status', [0, -1]); // 过滤报价草稿
// 如果是云芯的,过滤已删除状态
if (RequestHelper::getClientType() == AppType::APPTYPE_YUNXIN){
$list = $list->where('q.status', '<>', QuoteModel::STATUS_DEL);
}
} elseif ($type == 2) {
$perm = new PermController;
$role = $perm->getUserRole($input['user_id'], $input['email']); // 用户角色
if ($role == 4) { // 采购查看下级
$sub_sale_ids = $perm->getSubSaleId($input['user_id']);
$list = $list->whereIn('q.create_uid', $sub_sale_ids);
}
$list = $list->whereNotIn('q.status', [0, -1]); // 过滤报价草稿
} elseif ($type == 3) {
$list = $list->where('q.status', 0)->whereIn('q.inquiry_items_id', explode(',', $input['inquiry_items_ids']));
} elseif (@$input['inquiry_items_id'] > 0) {
$list = $list->whereNotIn('q.status', [0, -1])->where('q.inquiry_items_id', $input['inquiry_items_id']);
} elseif (isset($input['inquiry_items_ids']) && $input['inquiry_items_ids']) {
$inquiry_items_ids = explode(",", $input['inquiry_items_ids']);
$inquiry_items_ids = array_values(array_filter($inquiry_items_ids));
$list = $list->whereNotIn('q.status', [0, -1])->whereIn('q.inquiry_items_id', $inquiry_items_ids);
}
if ($map['create_uid']) { // 制单人
$list = $list->where('q.create_uid', $map['create_uid']);
}
$list = $list->select($field)->orderBy('id', 'desc');
// dump($list->getBindings());
// dump($list->toSql());
// $tmp = str_replace('?', '"'.'%s'.'"', $list->toSql());
// $tmp = vsprintf($tmp, $list->getBindings());
// echo $tmp;
// exit;
if ($export) {
$list = $list->get()->toArray();
if (empty($list)) {
echo '<script>alert("导出数据为空");history.go(-1);</script>';
die;
}
ExportLayui ($list);
exit();
} else {
$list = $list->paginate($limit, ['*'], 'page', $page)->toArray();
$list['data'] = $quoteModel->handleData($list['data'], $type);
$msg = '成功';
if ($type == 1) { // 我的报价
if (isset($map['status']) && $map['status']) {
switch($map['status']) {
case 1:
$list['count']['quoted_status'] = $quoteModel->commonQuery($map, $input, 2);
$list['count']['selected_status'] = 0;
$list['count']['confirmed_status'] = 0;
break;
case 2:
$list['count']['quoted_status'] = 0;
$list['count']['selected_status'] = $quoteModel->commonQuery($map, $input, 2);
$list['count']['confirmed_status'] = 0;
break;
case 3:
$list['count']['quoted_status'] = 0;
$list['count']['selected_status'] = 0;
$list['count']['confirmed_status'] = $quoteModel->commonQuery($map, $input, 2);
break;
}
} else {
$map['status'] = 1;
$list['count']['quoted_status'] = $quoteModel->commonQuery($map, $input, 2);
$map['status'] = 2;
$list['count']['selected_status'] = $quoteModel->commonQuery($map, $input, 2);
$map['status'] = 3;
$list['count']['confirmed_status'] = $quoteModel->commonQuery($map, $input, 2);
}
if (isset($list['count'])){
$msg = $list['count'];
}
}
// return [0, '获取成功', $list['data'], $list['total']];
ExportLayui ([ApiCode::API_CODE_SUCCESS, $msg, $list['data'], $list['total']]);
exit();
}
}
public function getApiSupplierList(Request $request){
$commonModel = new CommonModel();
$user_info = $this->user();
$supplier_name = $request->input('k');
$user_id= $user_info['user_id'];
$commonModel->getSupplierList($supplier_name,$user_id);
}
}
\ No newline at end of file
...@@ -25,12 +25,6 @@ class Kernel extends HttpKernel ...@@ -25,12 +25,6 @@ class Kernel extends HttpKernel
* @var array * @var array
*/ */
protected $middlewareGroups = [ protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\CheckLogin::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
EnableCrossRequestMiddleware::class,
],
'api' => [ 'api' => [
], ],
...@@ -51,6 +45,7 @@ class Kernel extends HttpKernel ...@@ -51,6 +45,7 @@ class Kernel extends HttpKernel
*/ */
protected $routeMiddleware = [ protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class, 'auth' => \App\Http\Middleware\Authenticate::class,
'auth.api' => \App\Http\Middleware\ApiAuthenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class, 'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
......
<?php
namespace App\Http\Middleware;
use App\Http\Services\UserService;
use App\Http\Utils\RequestHelper;
use App\Http\Utils\Response;
use App\Model\LoginModel;
use Closure;
class ApiAuthenticate
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (@$_REQUEST["debug"] == 100) {
$userInfo = ["user_id" => 1000, "user_name" => "admin"];
} else {
//来自不一样的端,判断是否已经登录
$source = $request->header("source"); //来源端:内部后台:pc 云芯系统:yunxin App: app 小程序:h5_app
$token = $request->header("token");
if ($token == "") {
Response::setError("参数 token 不得为空");
}
if ($source == 'yunxin') {
$cloud_user_info = UserService::getCloudSupplierCmsInfo($token);
if (empty($cloud_user_info)) {
Response::setError("请先登录");
}
$userInfo = ['user_id' => $cloud_user_info['userId'], "user_name" => $cloud_user_info['name'], 'email' => $cloud_user_info['email']];
// 设置请求平台类型
RequestHelper::setClientType($source);
} else {
// to do 待优化
$Redis = \RedisDB::connection();
$userInfoKey = $Redis->keys('frq_login_' . $token . "*");
$userInfo = count($userInfoKey) ? $Redis->get($userInfoKey[0]) : "";
if (empty($userInfo)) {
Response::setError("请先登录");
}
$userInfo = \GuzzleHttp\json_decode($userInfo, true);
}
}
// 设置请求用户信息
RequestHelper::setUser($userInfo);
return $next($request);
}
}
<?php
namespace App\Http\Services;
class UserService
{
public static function getCloudSupplierCmsInfo($token)
{
$http = new \GuzzleHttp\Client;
$url = Config('website.cloud_domain') . "/api/user/getsupplier.cmsinfo";
$response = $http->get($url, ['query' => ['token' => $token]]);
$stringBody = (string)$response->getBody();
$res = json_decode($stringBody, true);
if ($res && is_array($res) && ($res['err_code'] === 0)) {
$cms_info = $res['data'];
} else {
throw new \Exception("查询cms用户信息失败");
}
return $cms_info;
}
}
<?php
namespace App\Http\Utils;
interface ApiCode
{
const API_CODE_SUCCESS = 0;//接口请求成功
const API_CODE_ERROR = 1001;//接口请求失败
const API_CODE_DATA_INVALID = 1001;//数据校验失败
const API_CODE_UNLOGINED = 1001;//未登陆
const API_CODE_DATA_EMPTY = 1003;//数据为空
const API_CODE_NODATA = 20001;//没有数据
const API_CODE_PARAM_REQUIRED = -1;//参数缺失
const API_CODE_INQUIRY_HAS_BEEN_TAKEN = -1;//询价已被领取
const API_CODE_TAKE_INQUIRY_ERROR = -1;//领取询价失败
}
\ No newline at end of file
<?php
namespace App\Http\Utils;
class Response
{
public static function setError($errMsg, $errCode = ApiCode::API_CODE_ERROR, $data = null)
{
echo json_encode(['code' => $errCode, 'msg' => $errMsg, 'data' => $data], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
exit();
}
public static function setSuccess($data, $code = ApiCode::API_CODE_SUCCESS, $msg = "")
{
echo json_encode(['code' => $code, 'msg' => $msg, 'data' => $data], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
exit();
}
}
\ No newline at end of file
...@@ -7,6 +7,30 @@ ...@@ -7,6 +7,30 @@
// Route::match(['get', 'post'],'/api/{key}', 'ApiController@Entrance'); // Route::match(['get', 'post'],'/api/{key}', 'ApiController@Entrance');
// Route::match(['get', 'post'],'/hd/{key}', 'HdController@Entrance'); // Route::match(['get', 'post'],'/hd/{key}', 'HdController@Entrance');
//}); //});
Route::match(['get', 'post'],'/hd/{key}', 'HdController@Entrance'); Route::match(['get', 'post'],'/hd/{key}', 'HdController@Entrance');
Route::match(['get', 'post'],'/api/{key}', 'ApiController@Entrance'); Route::match(['get', 'post'],'/api/{key}', 'ApiController@Entrance');
Route::match(['get', 'post'],'/server/{key}', 'ServerController@Entrance'); //对外提供导出回调接口 Route::match(['get', 'post'],'/server/{key}', 'ServerController@Entrance'); //对外提供导出回调接口
\ No newline at end of file
/*******************询价管理*************************/
//Route::Get('/api/ApiSkuList','InquiryController@ApiSkuList');//新增询价查询sku接口;
//Route::Get('/api/ApiBrandList','InquiryController@ApiBrandList');//新增询价查询品牌接口;
//Route::Post('/api/ApiCheckGoods','ApiController@ApiCheckGoods');//检查是否已经存在询价单;
//Route::Post('/api/ApiCreateOneItems','ApiController@ApiCreateOneItems');//创建一条明细;
//Route::Post('/api/ApiDeleteInquiryItems','ApiController@ApiDeleteInquiryItems');//删除一条明细;
//Route::Post('/api/ApiEditInquiry','ApiController@ApiEditInquiry');//新增询价;
//Route::Post('/api/ApiDeleteInquiryItems','ApiController@ApiDeleteInquiryItems');//删除询价列表;
//Route::Get('/api/ApiInquiryList','ApiController@ApiInquiryList');//询价列表;
//Route::Post('/api/ApiInquiryExport','ApiController@ApiInquiryExport');//导出询价;
//Route::Post('/api/ApiInquiryClose','InquiryController@close');//关闭询价;
/*******************报价管理*************************/
//Route:Post('/api/ApiInquiryListPool','ApiController@ApiInquiryListPool');//询价池;
//Route:Post('/api/ApiTakeInquiry','ApiController@ApiTakeInquiry');//领取询价;
//Route:Post('/api/ApiQuoteList','ApiController@ApiQuoteList');//报价列表;
/*******************操作日志*************************/
//Route::Post('/api/ApiOperationLog','ApiController@ApiOperationLog');
<?php
Route::Get('/ApiSkuList','SearchController@getSkuList');//新增询价查询sku接口;
Route::Get('/ApiBrandList','SearchController@getBrandList');//新增询价查询品牌接口;
Route::Post('/ApiCheckGoods','SearchController@checkUniqueGoods');//检查是否已经存在询价单;
Route::Post('/ApiCreateOneItems','DataController@createInquiryItemsDetail');//创建一条询价明细;
Route::Post('/ApiDeleteInquiryItems','DataController@deleteInquiryItemsDetail');//删除询价明细;
Route::Post('/ApiEditInquiry','DataController@creatInquiry');//新增询价;
Route::Post('/ApiUpdateOneItems','DataController@editInquiryItemDetail');//修改单条明细记录;
Route::Get('/ApiInquiryList','SearchController@getInquiryList');//询价列表;
Route::Post('/ApiInquiryListPool','SearchController@getInquiryListPool');//询价池;
Route::Post('/ApiQuoteList','SearchController@getQuoteList');//报价列表;
Route::Post('/ApiTakeInquiry','DataController@takeInquiry');//领取询价;
Route::Get('/ApiSupplierList','SearchController@getApiSupplierList');//报价时查询供应商
\ No newline at end of file
...@@ -240,4 +240,33 @@ class CommonModel extends Model ...@@ -240,4 +240,33 @@ class CommonModel extends Model
return DB::connection('ass')->table('supplier_channel')->where('supplier_name', $supplier_name)->value('supplier_id'); return DB::connection('ass')->table('supplier_channel')->where('supplier_name', $supplier_name)->value('supplier_id');
} }
public function getSupplierList($supplier_name,$user_id){
//// $code_id = DB::connection('mysql')->select("select code_id as channel_id from lie_intracode where admin_id = ".$user_id);
// $lieIntracodeModel = new LieIntracodeModel();
// $lieSupplierChannelModel = new LieSupplierChannelModel();
// $code_id = $lieIntracodeModel->getCodeId($user_id);
// if(empty($code_id)){
// $channel_id = -1;
// }else{
// $channel_id = $code_id[0]['code_id'];
// }
//
//// $supplierInfo = $lieSupplierChannelModel->adminGetSupplierName($supplier_name);
//// var_dump($supplierInfo);
//// exit();
// if ($channel_id == 10000){
// $supplierInfo = DB::connection('ass')->select("select supplier_id as value, supplier_name as name from lie_supplier_channel where status = 2 and supplier_name like '%".$supplier_name."%' limit 1");
// echo json_encode($supplierInfo,JSON_UNESCAPED_UNICODE) ;
// exit();
// }
// $supplierInfo = DB::connection('ass')->select("select supplier_id as value, supplier_name as name from lie_supplier_channel where status = 2 and supplier_name like '%".$supplier_name."%' and channel_uid like '%".$channel_id."%' limit 10");
// echo json_encode($supplierInfo,JSON_UNESCAPED_UNICODE) ;
$supplierInfo = array();
$supplierInfoParam = array(
"value" => -1,
"name" => $supplier_name
);
array_push($supplierInfo,$supplierInfoParam);
echo json_encode($supplierInfo,JSON_UNESCAPED_UNICODE) ;
}
} }
\ No newline at end of file
...@@ -17,6 +17,12 @@ class InquiryItemsAssignModel extends Model ...@@ -17,6 +17,12 @@ class InquiryItemsAssignModel extends Model
const ASSIGN_TYPE_SELECTED = 2; const ASSIGN_TYPE_SELECTED = 2;
public function getUniqAssignUidsByInquiryItemIds($inquiry_item_ids)
{
$res = $this->select('assign_uid')->whereIn("inquiry_item_id", $inquiry_item_ids)->distinct()->get();
return ($res) ? $res->toArray() : [];
}
// 领取询价 // 领取询价
public function assign($inquiry_items_id, $assign_uid, $types=1) public function assign($inquiry_items_id, $assign_uid, $types=1)
{ {
...@@ -62,6 +68,15 @@ class InquiryItemsAssignModel extends Model ...@@ -62,6 +68,15 @@ class InquiryItemsAssignModel extends Model
return $this->where($map)->delete(); 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
<?php <?php
namespace App\Model; namespace App\Model;
use App\Http\Utils\ApiCode;
use App\map\InquiryMap; use App\map\InquiryMap;
use App\map\QuoteMap; use App\map\QuoteMap;
use App\Model\InquiryItemsAssignModel; use App\Model\InquiryItemsAssignModel;
...@@ -20,6 +21,8 @@ class InquiryItemsModel extends Model ...@@ -20,6 +21,8 @@ class InquiryItemsModel extends Model
const CREATED_AT = 'create_time'; const CREATED_AT = 'create_time';
const UPDATED_AT = 'update_time'; const UPDATED_AT = 'update_time';
const STATUS_CLOSE = -1; // 状态-已关闭
public function fromDateTime($value) public function fromDateTime($value)
{ {
return strtotime(parent::fromDateTime($value)); return strtotime(parent::fromDateTime($value));
...@@ -30,6 +33,16 @@ class InquiryItemsModel extends Model ...@@ -30,6 +33,16 @@ class InquiryItemsModel extends Model
return $this->whereIn("id", $ids)->get()->toArray(); return $this->whereIn("id", $ids)->get()->toArray();
} }
public function getListByInquiryId($inquiry_id)
{
$res = $this->where("inquiry_id", $inquiry_id)->get();
return ($res) ? $res->toArray() : [];
}
public function closeByInquiryId($inquiry_id)
{
return $this->where("inquiry_id", $inquiry_id)->update(["status" => self::STATUS_CLOSE, "update_time" => time()]);
}
//生成报价单详情 //生成报价单详情
public function ItemsOfferDetail($inquiry_id) public function ItemsOfferDetail($inquiry_id)
...@@ -137,6 +150,7 @@ class InquiryItemsModel extends Model ...@@ -137,6 +150,7 @@ class InquiryItemsModel extends Model
//清空列表 //清空列表
public function DeleteInquiryItems($input){ public function DeleteInquiryItems($input){
if (@$input["inquiry_id"]){ if (@$input["inquiry_id"]){
$del = $this->where(["inquiry_id"=>$input["inquiry_id"]])->delete(); $del = $this->where(["inquiry_id"=>$input["inquiry_id"]])->delete();
} }
...@@ -144,7 +158,7 @@ class InquiryItemsModel extends Model ...@@ -144,7 +158,7 @@ class InquiryItemsModel extends Model
$del = $this->where(["id"=>$input["inquiry_items_id"]])->delete(); $del = $this->where(["id"=>$input["inquiry_items_id"]])->delete();
$del = (new InquiryItemsReportModel())->where(["inquiry_items_id"=>$input["inquiry_items_id"]])->delete(); #同步输出报价表 $del = (new InquiryItemsReportModel())->where(["inquiry_items_id"=>$input["inquiry_items_id"]])->delete(); #同步输出报价表
} }
return [0,"删除成功"]; return [ApiCode::API_CODE_SUCCESS,"删除成功"];
} }
/* /*
...@@ -203,12 +217,12 @@ class InquiryItemsModel extends Model ...@@ -203,12 +217,12 @@ class InquiryItemsModel extends Model
if (count($b) == 0 || $b == ""){ if (count($b) == 0 || $b == ""){
return [1001,"插入数据不得为空"]; return [1001,"插入数据不得为空"];
} }
if (empty($b["goods_name"])) return [1003, "请选择型号名称"]; if (empty($b["goods_name"])) return [ApiCode::API_CODE_DATA_EMPTY, "请选择型号名称"];
if (empty($b["inquiry_id"])) return [1003, "询价单ID不得为空"]; if (empty($b["inquiry_id"])) return [ApiCode::API_CODE_DATA_EMPTY, "询价单ID不得为空"];
if (empty($b["brand_s"])) return [1003, "请选择品牌名称"]; if (empty($b["brand_s"])) return [ApiCode::API_CODE_DATA_EMPTY, "请选择品牌名称"];
if (empty($b["inquiry_number"])) return [1003, "请输入询价数量"]; if (empty($b["inquiry_number"])) return [ApiCode::API_CODE_DATA_EMPTY, "请输入询价数量"];
if (empty($b["batch"])) return [1003, "请输入批次要求"]; if (empty($b["batch"])) return [ApiCode::API_CODE_DATA_EMPTY, "请输入批次要求"];
if (empty($b["delivery_time"])) return [1003, "请选择交货日期"]; if (empty($b["delivery_time"])) return [ApiCode::API_CODE_DATA_EMPTY, "请选择交货日期"];
try{ try{
$con = DB::connection('rfq'); $con = DB::connection('rfq');
...@@ -283,10 +297,10 @@ class InquiryItemsModel extends Model ...@@ -283,10 +297,10 @@ class InquiryItemsModel extends Model
]); ]);
$con->commit(); $con->commit();
return [0,"添加成功"]; return [ApiCode::API_CODE_SUCCESS,"添加成功"];
}catch (\Exception $e) { }catch (\Exception $e) {
$con->rollBack(); $con->rollBack();
return [1001,"添加失败:".$e->getMessage()]; return [ApiCode::API_CODE_ERROR,"添加失败:".$e->getMessage()];
} }
} }
...@@ -642,5 +656,29 @@ class InquiryItemsModel extends Model ...@@ -642,5 +656,29 @@ class InquiryItemsModel extends Model
return [0,"通过"]; return [0,"通过"];
} }
public function checkUniqueInquiryItemsDetail($input){//检查是否存在相同品牌信息的明细
$brandInfo = json_decode($input["brand_s"],true);
$check = $this->where(["inquiry_id"=>$input["inquiry_id"],"goods_name"=>$input["goods_name"],"brand_name"=>$brandInfo[0]["name"]])->count();
return $check;
}
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
...@@ -236,5 +236,8 @@ class InquiryItemsReportModel extends Model ...@@ -236,5 +236,8 @@ class InquiryItemsReportModel extends Model
return $check != count($itemsIdArr) ? [1001,$types == 1 ? "存在没选中的询价单!":"存在没确定的询价单!"] : [0,"通过"]; 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
...@@ -27,6 +27,12 @@ class InquiryModel extends Model ...@@ -27,6 +27,12 @@ class InquiryModel extends Model
return $this->whereIn("id", $ids)->get()->toArray(); return $this->whereIn("id", $ids)->get()->toArray();
} }
public function getInfoById($id)
{
$res = $this->where("id", $id)->first();
return ($res) ? $res->toArray() : [];
}
/** /**
* 询价列表 * 询价列表
*/ */
...@@ -183,7 +189,7 @@ class InquiryModel extends Model ...@@ -183,7 +189,7 @@ class InquiryModel extends Model
if ($export == 0){ if ($export == 0){
$res = $Redis->SISMEMBER('frq_quote_urge', $v['id']); $res = $Redis->SISMEMBER('frq_quote_urge', $v['id']);
if ($res) { if ($res) {
$v['inquiry_sn'] = $v['inquiry_sn'] . "<span style='color:red;'>&nbsp;*</span>"; $v['inquiry_sn'] = $v['inquiry_sn'] . "<span style='color:#f2f2f2;'>&nbsp;*</span>";
} }
} }
...@@ -231,6 +237,14 @@ class InquiryModel extends Model ...@@ -231,6 +237,14 @@ class InquiryModel extends Model
return [0, "关闭整个询价单成功"]; return [0, "关闭整个询价单成功"];
} }
public function closeById($inquiry_id, $remark = '', $user_name = '')
{
if (empty(@$inquiry_id)) {
return false;
}
return $this->where("id", $inquiry_id)->update(["status" => -1, "remark" => $remark, "update_time" => time()]);
}
/** /**
* 询价池 * 询价池
*/ */
...@@ -557,6 +571,9 @@ class InquiryModel extends Model ...@@ -557,6 +571,9 @@ class InquiryModel extends Model
$res = $con->select($sql1); $res = $con->select($sql1);
return @$res[0]["count"]; 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
...@@ -20,5 +20,13 @@ class InquiryUsersModel extends Model ...@@ -20,5 +20,13 @@ class InquiryUsersModel extends Model
protected $primaryKey='id'; protected $primaryKey='id';
public $timestamps = false; 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
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
class LieBrandModel extends Model
{
protected $connection = 'spu';
protected $table = 'brand';
protected $primaryKey = 'brand_id';
public function getBrandList($k,$types=1){
if ($types == 1) { #模糊搜索
$brandInfoList = $this->select('brand_name','brand_id')->where('brand_name','like','%'.$k.'%')->get()->toArray();
$brandInfo = [];
foreach ($brandInfoList as $k=>$v){
array_push($brandInfo,["value"=>$v["brand_id"],"name"=>$v["brand_name"]]);
}
if (count($brandInfo) == 0){
$brandInfo = [["value"=>"0","name"=>$k]];
}
echo json_encode($brandInfo,JSON_UNESCAPED_UNICODE) ;
exit();
}
if ($types == 2) { #模糊搜索
$brandInfo = $this->select("select brand_id as value,brand_name as name from lie_brand where brand_name like '%".$k."%' limit 10");
echo json_encode($brandInfo,JSON_UNESCAPED_UNICODE) ;
exit();
}
if ($types == 3){ #精确搜索
$brandInfo = $this->select("select brand_id as brand_id,brand_name as name from lie_brand where brand_name = '".$k."' limit 1");
if (!$brandInfo){
return false;
}else{
return $brandInfo[0]["brand_id"];
}
}
}
}
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
class LieIntracodeModel extends Model
{
protected $connection = 'mysql';
protected $table = 'lie_intracode';
protected $primaryKey = 'code_id';
public function getCodeId($userId){
$codeId = $this->select('code_id')->where('admin_id',$userId)->get()->toArray();
return $codeId;
}
}
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class LieSupplierChannelModel extends Model
{
protected $connection = 'ass';
protected $table = 'supplier_channel';
protected $primaryKey = 'supplier_id';
public function buyerGetSupplierName($userId,$supplier_name){
$supplier_names = $this->select(DB::raw(' supplier_id as value, supplier_name as name'))->where('status',2)->where('supplier_name','like','%'.$supplier_name.'%')->where('channel_uid','like','%'.$userId.'%')->limit(10)->get()->toArray();
return $supplier_names;
}
public function adminGetSupplierName($supplier_name){
$supplier_names = $this->select(DB::raw(' supplier_id as value, supplier_name as name'))->where('status',2)->where('supplier_name','like','\'%'.$supplier_name.'%\'')->limit(10)->get()->toArray();
return $supplier_names;
}
}
...@@ -37,9 +37,9 @@ class RouteServiceProvider extends ServiceProvider ...@@ -37,9 +37,9 @@ class RouteServiceProvider extends ServiceProvider
*/ */
public function map(Router $router) public function map(Router $router)
{ {
$this->mapWebRoutes($router); $this->mapApiRoutes($router);
// $this->mapWebRoutes($router);
} }
/** /**
...@@ -58,4 +58,16 @@ class RouteServiceProvider extends ServiceProvider ...@@ -58,4 +58,16 @@ class RouteServiceProvider extends ServiceProvider
require app_path('Http/routes.php'); require app_path('Http/routes.php');
}); });
} }
protected function mapApiRoutes(Router $router)
{
$router->group([
'prefix' => "api",
'namespace' => $this->namespace,
"middleware" => 'auth.api',
], function ($router) {
require app_path('Http/routes/api.php');
});
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment