Commit d910b694 authored by 孙磊's avatar 孙磊

门店管理、门店服务类目

Signed-off-by: 孙磊's avatarsunlei <sunlei@romens.cn>
parent 875e463b
......@@ -39,7 +39,13 @@ return [
'GET,OPTIONS branch-list'=>'branch-list',
'POST,OPTIONS upload'=>'upload',
'POST,OPTIONS import-branch'=>'import-branch',
'GET,OPTIONS branch-detail' => 'branch-detail',
'GET,OPTIONS branch-services' => 'branch-services',
'GET,OPTIONS branch-transport-type'=>'branch-transport-type',
'POST,OPTIONS add-branch' => 'add-branch',
'PUT,OPTIONS revise-branch' => 'revise-branch',
'DELETE,OPTIONS del-branch' => 'del-branch',
'POST,OPTIONS branch-img-upload' => 'branch-img-upload',
],
],
//门店评分
......@@ -123,6 +129,8 @@ return [
'POST,OPTIONS add-branch-service' => 'add-branch-service',
'PUT,OPTIONS revise-branch-service' => 'revise-branch-service',
'DELETE,OPTIONS del-branch-service' => 'del-branch-service',
'POST,OPTIONS branch-service-import' => 'branch-service-import',
'GET,OPTIONS branch-service-export' => 'branch-service-export',
],
],
//门店电子围栏
......
......@@ -7,6 +7,12 @@ use backend\controllers\v1\BaseController;
use yii\web\UploadedFile;
use backend\helpers\UploadFiles;
use yii\web\HttpException;
use app\models\v1\branch\BranchServiceType;
use app\models\v1\branch\ShopTransportType;
use app\models\v1\branch\ShopBranchService;
use yii\web\BadRequestHttpException;
use backend\helpers\Func;
use yii\web\ServerErrorHttpException;
class BranchController extends BaseController
{
......@@ -19,10 +25,13 @@ class BranchController extends BaseController
* description="门店列表",
* summary="门店列表(孙磊)",
* @OA\Parameter(name="page",in="query",description="分页页码",@OA\Schema(type="int")),
* @OA\Parameter(name="RECIVER_PROVINCE",in="query",description="省份编号",@OA\Schema(type="string")),
* @OA\Parameter(name="RECIVER_CITY",in="query",description="城市编号",@OA\Schema(type="string")),
* @OA\Parameter(name="RECIVER_REGION",in="query",description="区域编号",@OA\Schema(type="string")),
* @OA\Parameter(name="IS_CARE",in="query",description="是否医保",@OA\Schema(type="int")),
* @OA\Parameter(name="IS_POINTS_SHOP",in="query",description="是否积分商城门店",@OA\Schema(type="int")),
* @OA\Parameter(name="IS_SHELVE",in="query",description="是否营业",@OA\Schema(type="int")),
* @OA\Parameter(name="BRANCH_TYPE",in="query",description="所属分公司",@OA\Schema(type="string")),
* @OA\Parameter(name="SUPPROVINCE_GUID",in="query",description="所属分公司",@OA\Schema(type="int")),
* @OA\Parameter(name="IS_DELIVERY_CODECHAIN_GOODS",in="query",description="是否冷链配送",@OA\Schema(type="int")),
* @OA\Parameter(name="IS_O2O",in="query",description="是否O2O门店",@OA\Schema(type="int")),
* @OA\Parameter(name="CODE",in="query",description="门店名称或编码",@OA\Schema(type="string")),
......@@ -31,6 +40,8 @@ class BranchController extends BaseController
* ORG_GUID:组织机构号,
* CODE:门店编号,
* NAME:门店名称,
* PARENT_GUID:上级编号,
* CONTACT_NAME:联系人姓名,
* ADDRESS:地址,
* IS_CARE:是否医保,1:是,
* IS_O2O:是否O2O门店,1:是
......@@ -64,6 +75,413 @@ class BranchController extends BaseController
return $errors;
}
}
/**
* @OA\Get(
* path="/backend/web/v1/branch/branches/branch-detail",
* tags={"门店&DC"},
* description="门店详情",
* summary="门店详情(孙磊)",
* @OA\Parameter(name="CODE",in="query",description="门店编码",@OA\Schema(type="string")),
* @OA\Response(response="200",description="返回成功
* "),
* security={{"Authorization": {}}}
* )
*/
public function actionBranchDetail()
{
$model = new $this->modelClass();
$params = Yii::$app->request->queryParams;
$branch_service = new ShopBranchService();
$branch_service_type = new BranchServiceType();
$model->attributes = $params;
if ($model->validate()) {
//所有输入数据都有效 all inputs are valid
$info = $model->BranchDetail($params['CODE']);
if (!$list = $info->getModels()) {
throw new BadRequestHttpException('未找到符合的门店列表信息');
}
//获取门店服务类目信息
$branch_service_relation = $branch_service->BranchSeviceRelation($params['CODE']);
if($bsr = $branch_service_relation->getModels()){
foreach($bsr as $k => $v){
$branch_s_type = $branch_service_type->BranchServiceInfo('','',$v['SERVICE_TYPE_GUID']);
$branch_ser_type = $branch_s_type->getModels();
foreach($branch_ser_type as $kk => $vv){
$bsr[$k]['BRANCH_SERVICE_TYPE_NAME'] = $vv['NAME'];
}
}
}
$branch_service_relation->setModels($bsr);
//将服务类目信息添加到门店信息
foreach($list as $key => $val){
if($bsr_info = $branch_service_relation->getModels()){
foreach($bsr_info as $k => $v){
$list[$key]['BRANCH_SERVICE_INFO'][] = $v;
}
}
}
$info->setModels($list);
return $info;
} else {
//验证失败:$errors 是一个包含错误信息的数组
$errors = $model->errors;
return $errors;
}
}
/**
* @OA\POST(
* path="/backend/web/v1/branch/branches/add-branch",
* tags={"门店&DC"},
* summary="添加门店接口(孙磊)",
* description="添加门店接口",
* @OA\RequestBody(
* required=true,
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* @OA\Property(property="NAME",description="门店名称,最长20字",type="string"),
* @OA\Property(property="CODE",description="门店编号",type="string"),
* @OA\Property(property="LICENCE_IMAGE_PATH",description="营业执照",type="string"),
* @OA\Property(property="RECIVER_PROVINCE",description="省份编号",type="string"),
* @OA\Property(property="RECIVER_CITY",description="城市编号",type="string"),
* @OA\Property(property="RECIVER_REGION",description="区域编号",type="string"),
* @OA\Property(property="ADDRESS",description="详细地址",type="string"),
* @OA\Property(property="PARENT_GUID",description="上级部门编号",type="string"),
* @OA\Property(property="LAT",description="门店坐标LAT",type="string"),
* @OA\Property(property="LNG",description="门店坐标LNG",type="string"),
* @OA\Property(property="IS_POINTS_SHOP",description="是否积分门店",type="int"),
* @OA\Property(property="DESCRIPTION",description="描述",type="string"),
* @OA\Property(property="BRANCH_NAME",description="门店简称",type="string"),
* @OA\Property(property="BRANCH_IMAGE_PATH",description="门店图片",type="string"),
* @OA\Property(property="PHONE",description="电话/手机号",type="string"),
* @OA\Property(property="CONTACT_NAME",description="联系人姓名",type="string"),
* @OA\Property(property="BRANCH_SERVICE_TYPE",description="服务类目",type="string"),
* @OA\Property(property="SCORE",description="门店评分",type="int"),
* @OA\Property(property="IS_CARE",description="是否医保",type="int"),
* @OA\Property(property="IS_O2O",description="是否O2O门店",type="int"),
* @OA\Property(property="IS_DELIVERY_CODECHAIN_GOODS",description="是否支持冷链配送",type="int"),
* @OA\Property(property="IS_SHELVE",description="是否营业",type="int"),
* @OA\Property(property="WORK_TIME_START",description="开始营业时间",type="string"),
* @OA\Property(property="WORK_TIME_END",description="结束营业时间",type="string"),
* @OA\Property(property="DELIVERY_TIME_START",description="开始配送时间",type="string"),
* @OA\Property(property="DELIVERY_TIME_END",description="结束配送时间",type="string"),
* @OA\Property(property="TRANSPORT_TYPE",description="支持配送方式",type="string"),
* @OA\Property(property="RETURN_ADDRESS",description="退货地址",type="string"),
* )
* )
* ),
* @OA\Response(response=201,description="门店添加成功"),
* security={{"Authorization": {}}}
* )
*/
public function actionAddBranch()
{
$param = Yii::$app->getRequest()->post();
$ShopBranchService = new ShopBranchService();
//BRANCH_SERVICE_TYPE应传数组 值为服务类目GUID
if(isset($param['BRANCH_SERVICE_TYPE']) && !empty($param['BRANCH_SERVICE_TYPE'])){
$ShopBranchService->scenario = 'create';//创建的场景
//删除门店原有服务类目
$code = $param['CODE'];
$ShopBranchService->BranchServiceDel($code);
$BST = $param['BRANCH_SERVICE_TYPE'];
$BST_arr = explode(',',$BST);
//添加门店服务类目
foreach($BST_arr as $k => $v){
$ShopBranchService = new ShopBranchService();
$service_param = array(
'GUID' => Func::create_guid(),
'STATE'=> 1,
'SERVICE_TYPE_GUID' => $v,
'BRANCH_GUID' => $param['CODE'],
);
$ShopBranchService->setAttributes($service_param);
//添加门店新的服务类目
if(!$ShopBranchService->save()){
return array('message'=>'门店服务类目添加失败!');
}
}
}
//营业时间
if(!empty($param['WORK_TIME_START']) && !empty($param['WORK_TIME_END'])){
$WORK_TIME = $param['WORK_TIME_START'].'-'.$param['WORK_TIME_END'];
}else{
$WORK_TIME = '';
}
//配送时间
if(!empty($param['DELIVERY_TIME_START']) && !empty($param['DELIVERY_TIME_END'])){
$DELIVERY_TIME = $param['DELIVERY_TIME_START'].'-'.$param['DELIVERY_TIME_END'];
}else{
$DELIVERY_TIME = '';
}
//添加门店
$model = new $this->modelClass();
$model->scenario = 'create';//创建的场景
$other_param = array(
'GUID'=>Func::create_guid(),
'ORG_GUID'=>Yii::$app->user->identity->ORG_GUID,
'UPDATE_TIME'=>date('Y-m-d H:i:s',time()),
'WORK_TIME'=>$WORK_TIME,
'DELIVERY_TIME'=>$DELIVERY_TIME,
);
$model->setAttributes($other_param);
$model->setAttributes(Yii::$app->getRequest()->post());
if ($model->save()) {
Yii::$app->getResponse()->setStatusCode(201);
} elseif (!$model->hasErrors()) {
throw new ServerErrorHttpException('Failed to create the object for unknown reason.');
}
return $model;
}
/**
* @OA\Get(
* path="/backend/web/v1/branch/branches/branch-services",
* tags={"门店&DC"},
* description="门店服务类目信息",
* summary="门店服务类目信息(孙磊)",
* operationId="Department",
* @OA\Parameter(name="page",in="query",description="分页页码",@OA\Schema(type="int")),
* @OA\Response(response="200",description="
* GUID:服务类目GUID,
* ORG_GUID:组织机构号,
* CODE:服务类目编号,
* NAME:服务类目名称,
* THEME_COLOR:主题颜色,
* DESCRIPTION:服务类目描述,
* CREATE_TIME:创建时间
* "),
* security={{"Authorization": {}}}
* )
*/
public function actionBranchServices()
{
$model=new BranchServiceType();
$info = $model->BranchServiceInfo('','');
if (!$info->getModels()) {
throw new BadRequestHttpException('未找到符合的门店服务类目信息');
}
return $info;
}
/**
* @OA\Get(
* path="/backend/web/v1/branch/branches/branch-transport-type",
* tags={"门店&DC"},
* description="门店配送方式信息",
* summary="门店配送方式信息(孙磊)",
* @OA\Parameter(name="page",in="query",description="分页页码",@OA\Schema(type="int")),
* @OA\Response(response="200",description="
* GUID:配送方式GUID,
* ORG_GUID:组织机构号,
* CODE:配送方式编号,
* NAME:配送方式名称,
* "),
* security={{"Authorization": {}}}
* )
*/
public function actionBranchTransportType()
{
$model = new ShopTransportType;
$info = $model->BranchTransportInfo();
if (!$info->getModels()) {
throw new BadRequestHttpException('未找到符合的门店门店配送方式');
}
return $info;
}
/**
* @OA\PUT(
* path="/backend/web/v1/branch/branches/revise-branch",
* tags={"门店&DC"},
* summary="修改门店接口(孙磊)",
* description="修改门店接口",
* @OA\RequestBody(
* required=true,
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* @OA\Property(property="GUID",description="要修改的门店GUID",type="string"),
* @OA\Property(property="NAME",description="门店名称,最长20字",type="string"),
* @OA\Property(property="CODE",description="门店编号",type="string"),
* @OA\Property(property="LICENCE_IMAGE_PATH",description="营业执照",type="string"),
* @OA\Property(property="RECIVER_PROVINCE",description="省份编号",type="string"),
* @OA\Property(property="RECIVER_CITY",description="城市编号",type="string"),
* @OA\Property(property="RECIVER_REGION",description="区域编号",type="string"),
* @OA\Property(property="ADDRESS",description="详细地址",type="string"),
* @OA\Property(property="PARENT_GUID",description="上级部门编号",type="string"),
* @OA\Property(property="LAT",description="门店坐标LAT",type="string"),
* @OA\Property(property="LNG",description="门店坐标LNG",type="string"),
* @OA\Property(property="IS_POINTS_SHOP",description="是否积分门店",type="int"),
* @OA\Property(property="DESCRIPTION",description="描述",type="string"),
* @OA\Property(property="BRANCH_NAME",description="门店简称",type="string"),
* @OA\Property(property="BRANCH_IMAGE_PATH",description="门店图片",type="string"),
* @OA\Property(property="PHONE",description="电话/手机号",type="string"),
* @OA\Property(property="CONTACT_NAME",description="联系人姓名",type="string"),
* @OA\Property(property="BRANCH_SERVICE_TYPE",description="服务类目",type="string"),
* @OA\Property(property="SCORE",description="门店评分",type="int"),
* @OA\Property(property="IS_CARE",description="是否医保",type="int"),
* @OA\Property(property="IS_O2O",description="是否O2O门店",type="int"),
* @OA\Property(property="IS_DELIVERY_CODECHAIN_GOODS",description="是否支持冷链配送",type="int"),
* @OA\Property(property="IS_SHELVE",description="是否营业",type="int"),
* @OA\Property(property="WORK_TIME_START",description="开始营业时间",type="string"),
* @OA\Property(property="WORK_TIME_END",description="结束营业时间",type="string"),
* @OA\Property(property="DELIVERY_TIME_START",description="开始配送时间",type="string"),
* @OA\Property(property="DELIVERY_TIME_END",description="结束配送时间",type="string"),
* @OA\Property(property="TRANSPORT_TYPE",description="支持配送方式",type="string"),
* @OA\Property(property="RETURN_ADDRESS",description="退货地址",type="string"),
* )
* )
* ),
* @OA\Response(response=202,description="门店修改成功"),
* security={{"Authorization": {}}}
* )
*/
public function actionReviseBranch()
{
$param = Yii::$app->getRequest()->post();
$guid = $param['GUID'];
$model = $this->modelClass::findOne($guid);
$ShopBranchService = new ShopBranchService();
if(!$model){
throw new BadRequestHttpException('没有找到要修改的记录');
}
//修改门店服务类目
$BRANCH_SERVICE_TYPE = $param['BRANCH_SERVICE_TYPE'];
$CODE = $param['CODE'];
if(isset($BRANCH_SERVICE_TYPE) && !empty($BRANCH_SERVICE_TYPE)){
$ShopBranchService->scenario = 'create';//创建的场景
//删除门店原有服务类目
$ShopBranchService->BranchServiceDel($CODE);
$BST_arr = explode(',',$BRANCH_SERVICE_TYPE);
//添加门店服务类目
foreach($BST_arr as $k => $v){
$ShopBranchService = new ShopBranchService();
$service_param = array(
'GUID' => Func::create_guid(),
'STATE'=> 1,
'SERVICE_TYPE_GUID' => $v,
'BRANCH_GUID' => $CODE,
);
$ShopBranchService->setAttributes($service_param);
//添加门店新的服务类目
if(!$ShopBranchService->save()){
return array('message'=>'门店服务类目添加失败!');
}
}
}
//营业时间
if(!empty($param['WORK_TIME_START']) && !empty($param['WORK_TIME_END'])){
$WORK_TIME = $param['WORK_TIME_START'].'-'.$param['WORK_TIME_END'];
}else{
$WORK_TIME = '';
}
//配送时间
if(!empty($param['DELIVERY_TIME_START']) && !empty($param['DELIVERY_TIME_END'])){
$DELIVERY_TIME = $param['DELIVERY_TIME_START'].'-'.$param['DELIVERY_TIME_END'];
}else{
$DELIVERY_TIME = '';
}
//门店信息修改
$model->scenario = 'update';//创建的场景
$other_param = array(
'UPDATE_TIME'=>date('Y-m-d H:i:s',time()),
'WORK_TIME'=>$WORK_TIME,
'DELIVERY_TIME'=>$DELIVERY_TIME,
);
$model->setAttributes($other_param);
$model->setAttributes(Yii::$app->getRequest()->post());
if ($model->save() === false && !$model->hasErrors()) {
throw new ServerErrorHttpException('Failed to update the object for unknown reason.');
}
Yii::$app->getResponse()->setStatusCode(202);
return $model;
}
/**
* @OA\DELETE(
* path="/backend/web/v1/branch/branches/del-branch",
* tags={"门店&DC"},
* summary="删除门店接口(孙磊)",
* description="删除门店接口",
* @OA\RequestBody(
* required=true,
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* @OA\Property(property="GUID",description="要删除的门店GUID",type="string"),
* )
* )
* ),
* @OA\Response(response=203,description="门店删除成功"),
* security={{"Authorization": {}}}
* )
*/
public function actionDelBranch()
{
$guid = Yii::$app->getRequest()->post('GUID');
$model = new $this->modelClass();
$branchservice = $model::findOne($guid);
if(!$branchservice){
throw new BadRequestHttpException('没有找到要删除的记录');
}else if ($branchservice->delete() === false) {
throw new ServerErrorHttpException('Failed to delete the object for unknown reason.');
}
Yii::$app->getResponse()->setStatusCode(203);
return $branchservice;
}
/**
* @OA\Post(
* path="/backend/web/v1/branch/branches/branch-img-upload",
* tags={"门店&DC"},
* summary="门店图片、证照上传(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="门店图片、证照上传",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public function actionBranchImgUpload()
{
//多文件时依赖注入参数参考UploadFiles类
$model = new UploadFiles(['png','jpg','jpeg']);
if (Yii::$app->request->isPost) {
//多文件用getInstances
$model->uploadFiles = UploadedFile::getInstance($model,'uploadFile');
$fileInfo = $model->upload();
if ($fileInfo['CODE']==200) {
// 文件上传成功
return [
'CODE'=>200,
'imgUrl'=>$fileInfo['INFO']
];
}else{
throw new HttpException(422);
}
}
}
/**
* @OA\Post(
* path="/backend/web/v1/branch/branches/upload",
......
......@@ -5,9 +5,14 @@ namespace backend\controllers\v1\branch;
use Yii;
use backend\controllers\v1\BaseController;
use yii\web\BadRequestHttpException;
use app\models\v1\branch\BranchServiceType;
use backend\helpers\Func;
use backend\helpers\UploadFiles;
use yidas\phpSpreadsheet\Helper;
use yii\web\HttpException;
use yii\web\ServerErrorHttpException;
use yii\web\UploadedFile;
use app\models\v1\branch\BranchServiceType;
class BranchServiceTypeController extends BaseController
{
......@@ -142,7 +147,6 @@ class BranchServiceTypeController extends BaseController
}
return $model;
}
/**
* @OA\PUT(
* path="/backend/web/v1/branch/branch-service-types/revise-branch-service",
......@@ -217,4 +221,142 @@ class BranchServiceTypeController extends BaseController
Yii::$app->getResponse()->setStatusCode(203);
return $branchservice;
}
/**
* @OA\Post(
* path="/backend/web/v1/branch/branch-service-types/branch-service-import",
* tags={"门店&DC"},
* summary="门店服务类目上传Excel(孙磊)",
* operationId="uploadFile",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="门店服务类目上传Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public function actionBranchServiceImport()
{
$upload_file = new UploadFiles(['xlsx','xls']);
$upload_file->uploadFiles = UploadedFile::getInstance($upload_file,'uploadFile');
$fileInfo = $upload_file->upload();
if($fileInfo['CODE'] != '200'){
throw new HttpException(422,json_encode($fileInfo));
}
$arr = Helper::newSpreadsheet($fileInfo['INFO'][0])->getRows(false,['rowOffset' => 1,'columns' => 4]);
$model = new $this->modelClass();
$create_data = [];//待新建数组
$update_data = [];//待更新数组
$invalidate_data = [];//验证有误数组
if(is_array($arr) && !empty($arr)){
foreach($arr as $value){
$model->CODE = (string)$value[0];
$model->NAME = $value[1];
$model->THEME_COLOR = $value[2];
$model->DESCRIPTION = $value[3];
if(!$model->validate()){
$value['error'] = $model->errors;
$invalidate_data[] = $value;
continue;
}
//若存在错误信息,即停止后续添加或更新,后续数据只做验证
if(empty($invalidate_data)){
//判断门店服务类目是否已存在,若存在放入待更新数组
$branch_service_info = BranchServiceType::findOne(['CODE' => $value[0]]);
if($branch_service_info){
$update_data[] = $value;
continue;
}
//待新建
$value[4] = Func::create_guid();
$value[5] = date('Y-m-d H:i:s',time());
$value[6] = Yii::$app->user->identity->ORG_GUID;
$create_data[] = $value;
}
}
}
// return $data = ['create' => $create_data,'update' => $update_data,'invalidate_data' => $invalidate_data];
if($invalidate_data){
throw new HttpException(422,json_encode($invalidate_data));
}
if($create_data){
$attribute = ['CODE','NAME','THEME_COLOR','DESCRIPTION','GUID','CREATE_TIME','ORG_GUID'];
$result = $model->getDb()->createCommand()->batchInsert('shop_branch_service_type',$attribute,$create_data)->execute();
@unlink($fileInfo['INFO'][0]);
if(!$result){
throw new ServerErrorHttpException('导入失败,请稍后重试');
}
}
if($update_data){
foreach($update_data as $key => $value){
$branch_service_type = BranchServiceType::findOne(['CODE' => $value[0]]);
$branch_service_type->CODE = (string)$value[0];
$branch_service_type->NAME = $value[1];
$branch_service_type->THEME_COLOR = $value[2];
$branch_service_type->DESCRIPTION = $value[3];
$branch_service_type->CREATE_TIME = date('Y-m-d H:i:s');
if($branch_service_type->update(false) == false){
// return $branch_service_type->getErrors();
@unlink($fileInfo['INFO'][0]);
throw new ServerErrorHttpException('导入失败,请稍后重试');
}
}
}
@unlink($fileInfo['INFO'][0]);
return ['code' => 200, 'message' => '导入成功!'];
}
/**
* @OA\GET(
* path="/backend/web/v1/branch/branch-service-types/branch-service-export",
* tags={"门店&DC"},
* summary="门店服务类目导出Excel(孙磊)",
* description="导出门店服务类目列表,请求成功后,输出文件到浏览器",
* @OA\Parameter(name="CODE",in="query",description="门店服务类目编号",@OA\Schema(type="string")),
* @OA\Parameter(name="NAME",in="query",description="门店服务类目名称",@OA\Schema(type="string")),
* @OA\Response(response=200,description="门店服务类目导出成功"),
* security={{"Authorization": {}}}
* )
*/
public function actionBranchServiceExport()
{
$model = new $this->modelClass();
$params = Yii::$app->request->queryParams;
$model->attributes = $params;
if(!$model->validate()){
throw new HttpException(422,json_encode($model->errors));
}
$list = $model->BranchServiceExport($params);
if(!$list){
throw new BadRequestHttpException('未找到符合条件的数据');
}
$name = '门店服务类目'.date('Y-m-d',time());
return Helper::newSpreadsheet()
->addRow(['服务类目名称','服务类目编号','服务类目描述','主体颜色','创建时间'])
->addRows($list)
->output($name,'Csv');
}
}
......@@ -56,7 +56,7 @@ class BranchServiceType extends BaseModel
];
}
//门店-门店服务类目信息
public function BranchServiceInfo($code,$name)
public function BranchServiceInfo($code,$name,$guid='')
{
$query = static::find()->select('GUID,NAME,CODE,THEME_COLOR,DESCRIPTION,CREATE_TIME');
......@@ -67,6 +67,11 @@ class BranchServiceType extends BaseModel
if (isset($code) && !empty($code)) {
$query->andWhere(['like', 'CODE', $code]);
}
if (isset($guid) && !empty($guid)) {
$query->andWhere(['=', 'GUID', $guid]);
}
return new ActiveDataProvider(
[
'query' => $query->asArray(),
......@@ -76,4 +81,33 @@ class BranchServiceType extends BaseModel
]
);
}
//门店服务类目导出
public function BranchServiceExport($params)
{
$query = static::find()->select('GUID,NAME,CODE,THEME_COLOR,DESCRIPTION,CREATE_TIME');
if (isset($params['NAME']) && !empty($params['NAME'])) {
$query->andWhere(['like', 'NAME', $params['NAME']]);
}
if (isset($params['CODE']) && !empty($params['CODE'])) {
$query->andWhere(['like', 'CODE', $params['CODE']]);
}
$list = [];
foreach($query->all() as $request){
$list[] = $request->toArray();
}
foreach($list as $key => $value){
$row_list[] = [
$value['NAME'], //服务类目名称
$value['CODE'], //服务类目编号
$value['DESCRIPTION'], //服务类目描述
$value['THEME_COLOR'], //主题颜色
$value['CREATE_TIME'], //创建时间
];
}
return $row_list;
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ namespace app\models\v1\branch;
use app\models\v1\BaseModel;
use Yii;
use yii\data\ActiveDataProvider;
use yii\helpers\ArrayHelper;
/**
* This is the model class for table "shop_branch".
......@@ -17,7 +18,7 @@ use yii\data\ActiveDataProvider;
* @property string $DESCRIPTION 描述
* @property string $ADDRESS 地址
* @property string $PHONE 电话
* @property string $CONTACTNAME 联系人姓名
* @property string $CONTACT_NAME 联系人姓名
* @property string $LAT LAT坐标
* @property string $LNG LNG坐标
* @property string $PRIMARY_LAT 原LAT坐标
......@@ -102,7 +103,7 @@ class ShopBranch extends BaseModel
[['IS_DELIVERY', 'IS_CARE', 'IS_RESERV', 'IS_O2O', 'IS_BOIL_MEDICINE', 'IS_POINTS_SHOP', 'IS_PICK_UP_STATION', 'IS_VIRTUAL_BRANCH', 'IS_SHELVE', 'BRANCH_TYPE', 'IS_DELIVERY_CODECHAIN_GOODS', 'SCORE', 'GOODS_TYPE', 'IS_B2C', 'TOTAL_VOLUME'], 'integer'],
[['DELIVERY_LIMIT', 'PICKUP_LIMIT', 'TRANSFERS_RATE'], 'number'],
[['LICENCE_DATE', 'UPDATE_TIME'], 'safe'],
[['GUID', 'ORG_GUID', 'CODE', 'PARENT_GUID', 'PHONE', 'CONTACTNAME', 'LAT', 'LNG', 'RECIVER_PROVINCE', 'RECIVER_CITY', 'RECIVER_REGION', 'DELIVERY_TIME', 'WORK_TIME', 'PASSWORD', 'TRANSFERS_OPENID', 'SUPPROVINCE_GUID', 'OPERATING_AREA', 'DRUGS', 'HEALTH_PRODUCTS', 'CHINESE_MEDICINE', 'MEDICAL_APPARATUS', 'PANHEALTH', 'SMALL_SHOP', 'TOWNSHIP_SHOP', 'OUTSIDE_SHOP', 'PRESCRIPTION', 'SHOP_TYPE', 'THIRD_CODE', 'COMP_CODE', 'SALESDIST', 'ZCBZIRK'], 'string', 'max' => 50],
[['GUID', 'ORG_GUID', 'CODE', 'PARENT_GUID', 'PHONE', 'CONTACT_NAME', 'LAT', 'LNG', 'RECIVER_PROVINCE', 'RECIVER_CITY', 'RECIVER_REGION', 'DELIVERY_TIME', 'WORK_TIME', 'PASSWORD', 'TRANSFERS_OPENID', 'SUPPROVINCE_GUID', 'OPERATING_AREA', 'DRUGS', 'HEALTH_PRODUCTS', 'CHINESE_MEDICINE', 'MEDICAL_APPARATUS', 'PANHEALTH', 'SMALL_SHOP', 'TOWNSHIP_SHOP', 'OUTSIDE_SHOP', 'PRESCRIPTION', 'SHOP_TYPE', 'THIRD_CODE', 'COMP_CODE', 'SALESDIST', 'ZCBZIRK'], 'string', 'max' => 50],
[['NAME', 'DESCRIPTION'], 'string', 'max' => 100],
[['PRIMARY_LAT', 'PRIMARY_LNG'], 'string', 'max' => 20],
[['SUPPORT_SEND_PLATFORM'], 'string', 'max' => 10],
......@@ -126,7 +127,7 @@ class ShopBranch extends BaseModel
'DESCRIPTION' => 'Description',
'ADDRESS' => 'Address',
'PHONE' => 'Phone',
'CONTACTNAME' => 'Contactname',
'CONTACT_NAME' => 'Contact Name',
'LAT' => 'Lat',
'LNG' => 'Lng',
'PRIMARY_LAT' => 'Primary Lat',
......@@ -197,6 +198,7 @@ class ShopBranch extends BaseModel
{
return $this->hasMany(CityDistributionSetting::className(), ['BRANCH_GUID' => 'GUID']);
}
/**
* 查询门店列表
* @params array $params 查询参数数组
......@@ -205,7 +207,12 @@ class ShopBranch extends BaseModel
public function BranchInfo($params)
{
$query = static::find()->alias('sb')
->select("sb.GUID,sb.NAME,sb.CODE,sb.ADDRESS,sb.PHONE,sb.LAT,sb.LNG,vwb.PROVINCE,vwb.CITY,vwb.REGION,sb.ADDRESS,sb.IS_CARE" )
->select("sb.GUID,sb.NAME,sb.CONTACT_NAME,sb.PARENT_GUID,sb.CODE,sb.ADDRESS,sb.PHONE,sb.LAT,
sb.RECIVER_PROVINCE,sb.RECIVER_CITY,sb.RECIVER_REGION,sb.LNG,vwb.PROVINCE,vwb.CITY,vwb.REGION,
sb.ADDRESS,sb.IS_CARE" )
// ->select("sb.GUID,sb.NAME,sb.CONTACT_NAME,sb.PARENT_GUID,sb.CODE,sb.ADDRESS,sb.PHONE,sb.LAT,
// sb.RECIVER_PROVINCE,sb.RECIVER_CITY,sb.RECIVER_REGION,sb.LNG,concat(vwb.PROVINCE,vwb.CITY,vwb.REGION,
// sb.`ADDRESS`) as DETAIL_ADDRESS,sb.IS_CARE" )
->leftJoin('VW_BRANCH_ADDRESS vwb', 'vwb.GUID=sb.GUID');
//是否医保
if (isset($params['IS_CARE'])) {
......@@ -220,8 +227,8 @@ class ShopBranch extends BaseModel
$query->andfilterWhere(['=', 'sb.IS_SHELVE', $params['IS_SHELVE']]);
}
//所属分公司
if (isset($params['BRANCH_TYPE'])) {
$query->andfilterWhere(['like', 'sb.BRANCH_TYPE', $params['BRANCH_TYPE']]);
if (isset($params['SUPPROVINCE_GUID'])) {
$query->andfilterWhere(['like', 'sb.SUPPROVINCE_GUID', $params['SUPPROVINCE_GUID']]);
}
//是否冷链配送
if (isset($params['IS_DELIVERY_CODECHAIN_GOODS'])) {
......@@ -236,6 +243,43 @@ class ShopBranch extends BaseModel
$query->orfilterWhere(['like', 'sb.CODE', $params['CODE']]);
$query->orfilterWhere(['like', 'sb.NAME', $params['CODE']]);
}
//省份
if (isset($params['RECIVER_PROVINCE'])) {
$query->andfilterWhere(['like', 'sb.RECIVER_PROVINCE', $params['RECIVER_PROVINCE']]);
}
//城市
if (isset($params['RECIVER_CITY'])) {
$query->andfilterWhere(['like', 'sb.RECIVER_CITY', $params['RECIVER_CITY']]);
}
//地区
if (isset($params['RECIVER_REGION'])) {
$query->andfilterWhere(['like', 'sb.RECIVER_REGION', $params['RECIVER_REGION']]);
}
return new ActiveDataProvider([
'query' => $query->asArray(),
'pagination' => [
'pageSize' => 10
],
'sort' => [
'attributes' => [
'CODE' => SORT_DESC
]
]
]);
}
/**
* 查询门店详情
* @params array $params 查询参数数组
* @return array|null 返回查询结果
*/
public function BranchDetail($code)
{
$query = static::find()
->select('GUID,NAME,CODE,LICENCE_IMAGE_PATH,RECIVER_PROVINCE,RECIVER_CITY,RECIVER_REGION,ADDRESS,PARENT_GUID,
LAT,LNG,IS_POINTS_SHOP,DESCRIPTION,BRANCH_NAME,BRANCH_IMAGE_PATH,PHONE,CONTACT_NAME,SCORE,IS_CARE,
IS_O2O,IS_DELIVERY_CODECHAIN_GOODS,IS_SHELVE,WORK_TIME,DELIVERY_TIME,TRANSPORT_TYPE,RETURN_ADDRESS')
->where(['CODE'=>$code]);
return new ActiveDataProvider([
'query' => $query->asArray(),
......
<?php
namespace app\models\v1\branch;
use app\models\v1\BaseModel;
use Yii;
use yii\data\ActiveDataProvider;
/**
* This is the model class for table "shop_branch_service".
*
* @property string $GUID
* @property string $BRANCH_GUID 门店GUID
* @property string $SERVICE_TYPE_GUID 类目GUID
* @property int $STATE 是否启用,1:启用
* @property string $ORDER_INDEX 类目序号
*/
class ShopBranchService extends BaseModel
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'shop_branch_service';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['GUID'], 'required','on'=>['create','update']],
[['STATE'], 'integer'],
[['GUID', 'BRANCH_GUID', 'SERVICE_TYPE_GUID'], 'string', 'max' => 50],
[['ORDER_INDEX'], 'string', 'max' => 5],
[['GUID'], 'unique'],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'GUID' => 'Guid',
'BRANCH_GUID' => 'Branch Guid',
'SERVICE_TYPE_GUID' => 'Service Type Guid',
'STATE' => 'State',
'ORDER_INDEX' => 'Order Index',
];
}
//删除门店原有服务类目
public function BranchServiceDel($b_code)
{
$branch_service = static::deleteAll(['BRANCH_GUID'=>$b_code]);
return $branch_service;
}
//获取门店服务类目关系
public function BranchSeviceRelation($b_code)
{
$branch_service = static::find()
->select('GUID,BRANCH_GUID,SERVICE_TYPE_GUID')
->where(['STATE'=>1])
->andwhere(['BRANCH_GUID'=>$b_code]);
return new ActiveDataProvider(
[
'query' => $branch_service->asArray(),
'pagination' => [
'pageSize' => 15,
]
]
);
}
}
\ No newline at end of file
<?php
namespace app\models\v1\branch;
use app\models\v1\BaseModel;
use Yii;
use yii\data\ActiveDataProvider;
/**
* This is the model class for table "shop_transport_type".
*
* @property string $GUID
* @property string $ORG_GUID 组织机构号
* @property string $CODE 编号
* @property string $NAME 名称
* @property string $PRICEFORMULA 暂不用
* @property string $SEARCHINTERFACE 暂不用
* @property string $DESCRIPTION 描述
* @property int $STATE 是否启用,1:启用,0:不启用
* @property string $ISUNDERLINEPAY 暂不用
* @property int $POINTS_STATE 积分商城此字段是否启用,1:启用
* @property int $ROMENSRENT_STATE 暂不用
* @property string $TRANSPOR_TYPE 配送方式类型1:门店B2C配送方式 2:门店O2O配送方式 3:DC仓B2C
* @property int $DSDINTERVAL 定时达时间间隔
* @property int $DELIVERY_TIME 配送时间,比如2小时达,配送时间为2
* @property int $ORDER_INDEX 序号
* @property int $EXTRA_MONEY 额外费用
*/
class ShopTransportType extends BaseModel
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'shop_transport_type';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['GUID'], 'required'],
[['STATE', 'POINTS_STATE', 'ROMENSRENT_STATE', 'DSDINTERVAL', 'DELIVERY_TIME', 'ORDER_INDEX', 'EXTRA_MONEY'], 'integer'],
[['GUID', 'ORG_GUID', 'CODE', 'NAME', 'ISUNDERLINEPAY'], 'string', 'max' => 50],
[['PRICEFORMULA', 'SEARCHINTERFACE'], 'string', 'max' => 200],
[['DESCRIPTION'], 'string', 'max' => 100],
[['TRANSPOR_TYPE'], 'string', 'max' => 20],
[['GUID'], 'unique'],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'GUID' => 'Guid',
'ORG_GUID' => 'Org Guid',
'CODE' => 'Code',
'NAME' => 'Name',
'PRICEFORMULA' => 'Priceformula',
'SEARCHINTERFACE' => 'Searchinterface',
'DESCRIPTION' => 'Description',
'STATE' => 'State',
'ISUNDERLINEPAY' => 'Isunderlinepay',
'POINTS_STATE' => 'Points State',
'ROMENSRENT_STATE' => 'Romensrent State',
'TRANSPOR_TYPE' => 'Transpor Type',
'DSDINTERVAL' => 'Dsdinterval',
'DELIVERY_TIME' => 'Delivery Time',
'ORDER_INDEX' => 'Order Index',
'EXTRA_MONEY' => 'Extra Money',
];
}
//门店-配送方式信息
public function BranchTransportInfo()
{
$query = static::find()->select('GUID,NAME,CODE')
->where(['STATE' => 1]);
return new ActiveDataProvider(
[
'query' => $query->asArray(),
'pagination' => [
'pageSize' => 15,
]
]
);
}
}
\ No newline at end of file
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 to comment