Commit 119cd9f8 authored by 张晓林's avatar 张晓林

Merge branch 'development' of http://gitlab-ebiz.yiyao365.cn/newshop/newshopback into development

parents e9625051 683a07f7
...@@ -261,6 +261,7 @@ return [ ...@@ -261,6 +261,7 @@ return [
'PUT,OPTIONS o2o-delivery-update' => 'o2o-delivery-update', 'PUT,OPTIONS o2o-delivery-update' => 'o2o-delivery-update',
'GET,OPTIONS o2o-delivery-export' => 'o2o-delivery-export', 'GET,OPTIONS o2o-delivery-export' => 'o2o-delivery-export',
'GET,OPTIONS o2o-delivery-view' => 'o2o-delivery-view', 'GET,OPTIONS o2o-delivery-view' => 'o2o-delivery-view',
'POST,OPTIONS o2o-delivery-import' => 'o2o-delivery-import',
], ],
], ],
//配送方式 //配送方式
...@@ -301,7 +302,7 @@ return [ ...@@ -301,7 +302,7 @@ return [
'extraPatterns' => [ 'extraPatterns' => [
'GET,OPTIONS node-list' => 'node-list', 'GET,OPTIONS node-list' => 'node-list',
'GET,OPTIONS node-details' => 'node-details', 'GET,OPTIONS node-details' => 'node-details',
'put,OPTIONS node-update' => 'node-update', 'PUT,OPTIONS node-update' => 'node-update',
'POST,OPTIONS node-add' => 'node-add', 'POST,OPTIONS node-add' => 'node-add',
'DELETE,OPTIONS node-del' => 'node-del', 'DELETE,OPTIONS node-del' => 'node-del',
] ]
......
...@@ -142,14 +142,14 @@ class AuthorityNodeController extends BaseController ...@@ -142,14 +142,14 @@ class AuthorityNodeController extends BaseController
* @OA\Property(property="NAME" ,type="string", description="菜单地址"), * @OA\Property(property="NAME" ,type="string", description="菜单地址"),
* @OA\Property(property="TITLE" ,type="string", description="菜单名称"), * @OA\Property(property="TITLE" ,type="string", description="菜单名称"),
* @OA\Property(property="LOGO" ,type="string",description="菜单前面的图标url"), * @OA\Property(property="LOGO" ,type="string",description="菜单前面的图标url"),
* @OA\Property(property="STATUS", type="int",description="菜单状态(默认1启用,0禁用)"), * @OA\Property(property="STATUS", type="int",description="菜单状态(默认1启用,0禁用)",example="1"),
* @OA\Property(property="IS_MENU", type="int",description="是否菜单(默认0否,1是)"), * @OA\Property(property="IS_MENU", type="int",description="是否菜单(默认0否,1是)",example="0"),
* @OA\Property(property="IS_TOP_MENU", type="int",description="是否顶部菜单(默认0否,1是)"), * @OA\Property(property="IS_TOP_MENU", type="int",description="是否顶部菜单(默认0否,1是)",example="0"),
* @OA\Property(property="IS_DEFAULT_SHOW", type="int",description="是否进入默认显示页面(默认0否,1是)"), * @OA\Property(property="IS_DEFAULT_SHOW", type="int",description="是否进入默认显示页面(默认0否,1是)",example="0"),
* @OA\Property(property="REMARK", type="string",description="描述"), * @OA\Property(property="REMARK", type="string",description="描述"),
* @OA\Property(property="SORT", type="int",description="菜单排序序号"), * @OA\Property(property="SORT", type="int",description="菜单排序序号"),
* @OA\Property(property="PID", type="string",description="父级菜单ID(默认无:0)"), * @OA\Property(property="PID", type="string",description="父级菜单ID(默认无:0)",example="0"),
* @OA\Property(property="LEVEL",type="int",description="菜单层级等级(类型-0:项目,1:模块,2:操作)") * @OA\Property(property="LEVEL",type="int",description="菜单层级等级(类型-0:项目,1:模块,2:操作)",example="0")
* ) * )
* ) * )
* ), * ),
...@@ -192,9 +192,9 @@ class AuthorityNodeController extends BaseController ...@@ -192,9 +192,9 @@ class AuthorityNodeController extends BaseController
* summary="删除权限节点(侯贺政)", * summary="删除权限节点(侯贺政)",
* description="删除权限节点", * description="删除权限节点",
* @OA\Parameter( * @OA\Parameter(
* description="要删除的节点GUID", * description="要删除的节点ID",
* in="query", * in="query",
* name="GUID", * name="ID",
* required=true, * required=true,
* @OA\Schema( * @OA\Schema(
* type="string", * type="string",
...@@ -209,9 +209,9 @@ class AuthorityNodeController extends BaseController ...@@ -209,9 +209,9 @@ class AuthorityNodeController extends BaseController
*/ */
public function actionNodeDel() public function actionNodeDel()
{ {
$guid = Yii::$app->request->get('GUID'); $id = Yii::$app->request->get('ID');
$model = new $this->modelClass(); $model = new $this->modelClass();
$_model = $model::findOne($guid); $_model = $model::findOne($id);
if (!$_model) { if (!$_model) {
throw new BadRequestHttpException('Requested resource does not exist !'); throw new BadRequestHttpException('Requested resource does not exist !');
} }
...@@ -221,4 +221,105 @@ class AuthorityNodeController extends BaseController ...@@ -221,4 +221,105 @@ class AuthorityNodeController extends BaseController
throw new HttpException(200, "删除成功!"); throw new HttpException(200, "删除成功!");
} }
/**
* @OA\GET(
* path="/backend/web/v1/authority/authority-nodes/node-details",
* tags={"权限管理"},
* summary="权限节点详情(侯贺政)",
* description="权限节点详情",
* @OA\Parameter(
* description="节点ID",
* name="ID",
* in="query",
* @OA\Schema(
* type="string"
* )
* ),
* @OA\Response(
* response=200,
* description="
* ID:节点id,
* NAME:菜单地址,
* TITLE:菜单名称,
* LOGO:logo地址,
* STATUS:菜单状态 0禁用 1启用,
* IS_MENU:是否为菜单(1:是,0:不是),
* IS_TOP_MENU:是否顶部菜单 1是 0否,
* IS_DEFAULT_SHOW:是否进入默认显示页面 1是0否,
* REMARK:描述,
* SORT:菜单排序序号,
* PID:父级菜单ID,
* LEVEL:菜单层级等级(类型-0:项目,1:模块,2:操作)")
* ),
* security={{"Authorization":{}}}
* )
*/
public function actionNodeDetails()
{
$id = Yii::$app->request->get('ID');
$model = new $this->modelClass();
$info = $model->findOne($id);
if (!$info) {
throw new BadRequestHttpException('Requested resource does not exist !');
}
return $info;
}
/**
* @OA\PUT(
* path="/backend/web/v1/authority/authority-nodes/node-update",
* tags={"权限管理"},
* summary="更新权限节点(侯贺政)",
* description="更新权限节点",
* @OA\RequestBody(
* required=true,
* description="权限节点更新",
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"ID"},
* @OA\Property(property="ID",type="int",description="节点ID"),
* @OA\Property(property="NAME" ,type="string", description="菜单地址"),
* @OA\Property(property="TITLE" ,type="string", description="菜单名称"),
* @OA\Property(property="LOGO" ,type="string",description="菜单前面的图标url"),
* @OA\Property(property="STATUS", type="int",description="菜单状态(1启用,0禁用)"),
* @OA\Property(property="IS_MENU", type="int",description="是否菜单(0否,1是)"),
* @OA\Property(property="IS_TOP_MENU", type="int",description="是否顶部菜单(0否,1是)"),
* @OA\Property(property="IS_DEFAULT_SHOW", type="int",description="是否进入默认显示页面(0否,1是)"),
* @OA\Property(property="REMARK", type="string",description="描述"),
* @OA\Property(property="SORT", type="int",description="菜单排序序号"),
* @OA\Property(property="PID", type="string",description="父级菜单ID(无:0)"),
* @OA\Property(property="LEVEL",type="int",description="菜单层级等级(类型-0:项目,1:模块,2:操作)")
* )
* )
* ),
* @OA\Response(response=200,description="更新成功!"),
* security={{"Authorization":{}}}
* )
*/
public function actionNodeUpdate()
{
$params = Yii::$app->request->bodyParams;
$model = new $this->modelClass();
$_model = $model::findOne($params['ID']);
if (!$_model) {
throw new BadRequestHttpException("不存在此节点!");
}
//过滤掉部分为空的参数
foreach ($params as $key => $value) {
if (in_array($key, ['TITLE', 'STATUS', 'IS_MENU', 'IS_TOP_MENU', 'IS_DEFAULT_SHOW', 'SORT', 'PID', 'LEVEL']) && empty(trim($value))) {
unset($params[$key]);
}
}
$_model->attributes = $params;
if (!$_model->save()) {
Yii::$app->response->statusCode = 422;
return $_model->errors;
}
throw new HttpException(200, '更新成功!');
}
} }
<?php
namespace backend\controllers\v1\goods;
use Yii;
use backend\controllers\v1\BaseController;
class ShopGoodsController extends BaseController
{
public $modelClass = 'app\models\v1\goods\ShopGoods';
}
\ No newline at end of file
...@@ -11,6 +11,7 @@ use yii\web\HttpException; ...@@ -11,6 +11,7 @@ use yii\web\HttpException;
use backend\helpers\UploadFiles; use backend\helpers\UploadFiles;
use yii\web\UploadedFile; use yii\web\UploadedFile;
use yidas\phpSpreadsheet\Helper; use yidas\phpSpreadsheet\Helper;
use app\models\v1\transport\ScdsImport;
class O2oDeliveryController extends BaseController class O2oDeliveryController extends BaseController
{ {
...@@ -244,6 +245,7 @@ class O2oDeliveryController extends BaseController ...@@ -244,6 +245,7 @@ class O2oDeliveryController extends BaseController
*/ */
public function actionO2oDeliveryImport() public function actionO2oDeliveryImport()
{ {
$scdsImport = new ScdsImport();
$model = new UploadFiles(); $model = new UploadFiles();
if (Yii::$app->request->isPost) { if (Yii::$app->request->isPost) {
//多文件用getInstances //多文件用getInstances
...@@ -254,63 +256,53 @@ class O2oDeliveryController extends BaseController ...@@ -254,63 +256,53 @@ class O2oDeliveryController extends BaseController
if ($fileInfo['CODE']==200) { if ($fileInfo['CODE']==200) {
$rows = Helper::newSpreadsheet($fileInfo['INFO'][0])->getRows(); $rows = Helper::newSpreadsheet($fileInfo['INFO'][0])->getRows();
$tempArr=array_slice($rows,2); $tempArr=array_slice($rows,2);
$scdrModel = new ShopCityDistributionRegion(); $codeArr=[];
$scdsModel = new $this->modelClass(); $scdsImport->scenario = 'o2o_update';
$scdsModel->scenario = 'o2o_import'; foreach ($tempArr as $keyA => $valueA) {
//判断用户等级 $codeArr[] = $valueA[0];
$rbacModel = new ShopRbacUser();
$userGuid = Yii::$app->user->identity->GUID;
$userInfo = $rbacModel->getRbacUserInfo($userGuid);
switch ($userInfo['ROLE_ID']) {
case USER_ROLE_HEADQUARTERS_ADMIN:
break;
case USER_ROLE_REGION_ADMIN:
break;
case USER_ROLE_STORE_ADMIN:
break;
} }
$transaction=$scdsModel->getDb()->beginTransaction(); $scdsImport->branchCodeArr = $codeArr;
if(!$scdsImport->validate()){
return $scdsImport->errors;
}
$transaction=$scdsImport->getDb()->beginTransaction();
$orgGuid = Yii::$app->user->identity->ORG_GUID;
try { try {
foreach ($tempArr as $key => $value) { foreach ($tempArr as $key => $valueB) {
$_scdsModel = $scdsModel::find()->where(['BRANCH_GUID'=>Yii::$app->user->identity->ORG_GUID.'-'.$value[0],'SETTING_TYPE'=>O2O_FLAG]); $scdsImport->branchCode = $valueB[0];
if ($_scdsModel===null) { $scdsImport->REGION_TYPE = $valueB[1];
$_scdsModel = clone $scdsModel; $scdsImport->DELIVERY_PRICE = $valueB[2];
} $scdsImport->REGION_DISTR_DISTANCE = $valueB[3];
$_scdsModel->BRANCH_CODE=$value[0]; $scdsImport->REGION_DISTR_PRICE = $valueB[4];
$_scdsModel->REGION_TYPE=$value[1]; $scdsImport->INCREASE_DISTANCE = $valueB[5];
$_scdsModel->DELIVERY_PRICE=$value[2]; $scdsImport->INCREASE_PRICE = $valueB[6];
$_scdsModel->REGION_DISTR_DISTANCE=$value[3]; if(!$scdsImport->validate()){
$_scdsModel->REGION_DISTR_PRICE=$value[4]; $returnInfo = [
$_scdsModel->INCREASE_DISTANCE=$value[5]; ($key+1) => $scdsImport->errors
$_scdsModel->INCREASE_PRICE=$value[6]; ];
if ($_scdsModel->REGION_TYPE==1) { @unlink($fileInfo['INFO'][0]);
$_scdrModel = $scdrModel::find()->where(['$_scdsModel'=>$_scdsModel->GUID]); Yii::$app->response->statusCode = 422;
if ($_scdrModel===null) { return $returnInfo;
$_scdrModel = clone $scdrModel; }else{
} if ($scdsImport->REGION_TYPE==REGION_TYPE_REGION) {
// $_scdrModel -> //区域更新shop_city_distribution_setting和shop_city_distribution_region俩表
if (!$_scdsModel->save()|| $_scdrModel->save(false)) { // $scdsImport->update();
$transaction->rollBack(); $scdsImport::updateAll(['status' => 1], ['status'=> $orgGuid.'-'.$scdsImport->branchCode,'SETTING_TYPE'=>O2O_FLAG]);
$returnInfo = [ }elseif($scdsImport->REGION_TYPE==REGION_TYPE_DISTANCE){
($key+1) => $_scdsModel->errors //距离更新shop_city_distribution_setting表
];
@unlink($fileInfo['INFO'][0]);
Yii::$app->response->statusCode = 422;
return $returnInfo; # code...
} }
}elseif($_scdsModel->REGION_TYPE==2){
} }
} }
$transaction->commit();
@unlink($fileInfo['INFO'][0]);
throw new HttpException("200", '导入成功');
} catch (\Throwable $e) { } catch (\Throwable $e) {
$transaction->rollBack(); $transaction->rollBack();
@unlink($fileInfo['INFO'][0]); @unlink($fileInfo['INFO'][0]);
throw $e; throw $e;
} }
}else{ }else{
return $fileInfo['INFO']; return $fileInfo['INFO'];
} }
......
...@@ -14,6 +14,7 @@ use backend\helpers\Func; ...@@ -14,6 +14,7 @@ use backend\helpers\Func;
use yii\web\HttpException; use yii\web\HttpException;
use app\models\v1\rbacuser\ShopRbacUser; use app\models\v1\rbacuser\ShopRbacUser;
use app\models\v1\branch\ShopBranch; use app\models\v1\branch\ShopBranch;
use app\models\v1\branch\ShopCityDistributionSetting;
class TransportInitialPriceController extends BaseController class TransportInitialPriceController extends BaseController
{ {
...@@ -46,18 +47,17 @@ class TransportInitialPriceController extends BaseController ...@@ -46,18 +47,17 @@ class TransportInitialPriceController extends BaseController
*/ */
public function actionInitialPriceList() public function actionInitialPriceList()
{ {
$model = new ShopCityDistributionRegion();
$params = Yii::$app->request->queryParams;
//权限信息 //权限信息
$rbac = new ShopRbacUser(); $rbac = new ShopRbacUser();
$userGuid = Yii::$app->user->identity->GUID; $userGuid = Yii::$app->user->identity->GUID;
$userinfo = $rbac->getRbacUserInfo($userGuid); $userinfo = $rbac->getRbacUserInfo($userGuid);
if ($userinfo) {
$params['BRANCH_GUID'] = $userinfo['BRANCH_GUID']; $model = new ShopCityDistributionRegion();
} else { $params = Yii::$app->request->queryParams;
$params['BRANCH_GUID'] = ''; //当前权限允许的区域GUID
} $guids = $this->getRegionGuid($userinfo);
$params['BRANCH_GUID'] = 003; $params['REGION_GUID'] = $guids;
$model->attributes = $params; $model->attributes = $params;
if ($model->validate()) { if ($model->validate()) {
//所有输入数据都有效 all inputs are valid //所有输入数据都有效 all inputs are valid
...@@ -72,6 +72,36 @@ class TransportInitialPriceController extends BaseController ...@@ -72,6 +72,36 @@ class TransportInitialPriceController extends BaseController
return $model->errors; return $model->errors;
} }
} }
/**
* 获取符合权限的优惠券
* @param $userinfo 用户权限信息
*/
public function getRegionGuid($userinfo)
{
$city_dis_setting = new ShopCityDistributionSetting();
//省级管理员的优惠券
if ($userinfo['ROLE_ID']) {
$branch_guid = $userinfo['BRANCH_GUID'];
if ($branch_guid) {
$userbranch = $city_dis_setting->getInitialCoupon($branch_guid, $userinfo['ROLE_ID']);
//去掉重复的
$userbranchcouponguid = array();
if ($userbranch) {
foreach ($userbranch as $k1 => $v1) {
$userbranchcouponguid[] = $v1['GUID'];
}
}
if (!$userbranchcouponguid) {
$userbranchcouponguid = "";
}
return $userbranchcouponguid;
} else {
return '';
}
} else {
return '';
}
}
/** /**
* @OA\PUT( * @OA\PUT(
* path="/backend/web/v1/transport/transport-initial-prices/revise-initial-price", * path="/backend/web/v1/transport/transport-initial-prices/revise-initial-price",
...@@ -160,19 +190,18 @@ class TransportInitialPriceController extends BaseController ...@@ -160,19 +190,18 @@ class TransportInitialPriceController extends BaseController
foreach ($tempArr as $key => $value) { foreach ($tempArr as $key => $value) {
$CS_BRANCH_GUID = Yii::$app->user->identity->ORG_GUID . '-' . $value[0]; $CS_BRANCH_GUID = Yii::$app->user->identity->ORG_GUID . '-' . $value[0];
$_citydisregion = $citydisregion->getBranchInitialPrice('', $CS_BRANCH_GUID); $_citydisregion = $citydisregion->getBranchInitialPrice('', $CS_BRANCH_GUID);
// $_citydisregion = $citydisregion->getBranchInitialPrice('',003); // $_citydisregion = $citydisregion->getBranchInitialPrice('', 003);
//权限信息 //权限信息
$rbac = new ShopRbacUser(); $rbac = new ShopRbacUser();
$userGuid = Yii::$app->user->identity->GUID; $userGuid = Yii::$app->user->identity->GUID;
$userinfo = $rbac->getRbacUserInfo($userGuid); $userinfo = $rbac->getRbacUserInfo($userGuid);
//return $userinfo; //return $userinfo;
//判断当前账号是省级还是门店还是总部 //判断当前账号是省级还是门店还是总部
if ($userinfo['ROLE_ID'] == USER_ROLE_HEADQUARTERS_ADMIN || $userinfo['ROLE_ID'] == USER_ROLE_REGION_ADMIN) { if ($userinfo['ROLE_ID'] == USER_ROLE_REGION_ADMIN) {
//如果是省级,查询出该门店是否是该省级下的 //如果是省级,查询出该门店是否是该省级下的
$branchModel = new ShopBranch(); $branchModel = new ShopBranch();
// $userinfo['BRANCH_GUID'] = 003;
$isbrancharr = $branchModel->GetBranch($CS_BRANCH_GUID, $userinfo['BRANCH_GUID']); $isbrancharr = $branchModel->GetBranch($CS_BRANCH_GUID, $userinfo['BRANCH_GUID']);
// $isbrancharr = $branchModel->GetBranch(003, 003);
if (!$isbrancharr) { if (!$isbrancharr) {
continue; continue;
} }
......
...@@ -50,7 +50,7 @@ use app\models\v1\rbacuser\ShopRbacUser; ...@@ -50,7 +50,7 @@ use app\models\v1\rbacuser\ShopRbacUser;
* @property string $TRANSFERS_OPENID 收款人openid * @property string $TRANSFERS_OPENID 收款人openid
* @property int $IS_SHELVE 是否营业 * @property int $IS_SHELVE 是否营业
* @property string $LICENCE_DATE 营业执照到期时间 * @property string $LICENCE_DATE 营业执照到期时间
* @property int $BRANCH_TYPE 部门类型,0:总部 1:省级DC分公司 2:区域 3:门店 * @property int $BRANCH_TYPE 部门类型,0:总部 1:省级DC分公司 2:门店
* @property string $SUPPORT_SEND_PLATFORM 支持配送的平台:(1.达达,2蜂鸟,3美团) 按顺序逗号分隔 * @property string $SUPPORT_SEND_PLATFORM 支持配送的平台:(1.达达,2蜂鸟,3美团) 按顺序逗号分隔
* @property string $TRANSPORT_TYPE 快递类型 * @property string $TRANSPORT_TYPE 快递类型
* @property int $IS_DELIVERY_CODECHAIN_GOODS 1:支持冷链配送,0:不支持 * @property int $IS_DELIVERY_CODECHAIN_GOODS 1:支持冷链配送,0:不支持
......
...@@ -98,10 +98,8 @@ class ShopCityDistributionRegion extends BaseModel ...@@ -98,10 +98,8 @@ class ShopCityDistributionRegion extends BaseModel
$query->andfilterWhere(['or', ['like', 'sb.CODE', $params['CODE']], ['like', 'sb.NAME', $params['CODE']]]); $query->andfilterWhere(['or', ['like', 'sb.CODE', $params['CODE']], ['like', 'sb.NAME', $params['CODE']]]);
} }
//当前权限允许的门店 //当前权限允许的门店
if (isset($params['BRANCH_GUID']) && !empty($params['BRANCH_GUID'])) { if (isset($params['REGION_GUID']) && !empty($params['REGION_GUID'])) {
$query->andFilterWhere(['or', ['=', 'ifnull(sb.SUPPROVINCE_GUID,cs.BRANCH_GUID)', $params['BRANCH_GUID']], ['=', "ifnull(sb.PARENT_GUID,'')", $params['BRANCH_GUID']]]); $query->andFilterWhere(['sg.GUID' => $params['REGION_GUID']]);
//$query->andWhere(['not', ['sg.GUID' => '']]);
$query->andWhere(['!=', 'sg.GUID', '']);
} }
//批量修改 条件 //批量修改 条件
if (isset($guid) && !empty($guid)) { if (isset($guid) && !empty($guid)) {
......
...@@ -62,17 +62,17 @@ class ShopCityDistributionSetting extends BaseModel ...@@ -62,17 +62,17 @@ class ShopCityDistributionSetting extends BaseModel
[['ORG_GUID', 'GUID', 'BRANCH_GUID', 'REGION_TYPE', 'SETTING_TYPE'], 'required', 'on' => ['insert', 'update']], [['ORG_GUID', 'GUID', 'BRANCH_GUID', 'REGION_TYPE', 'SETTING_TYPE'], 'required', 'on' => ['insert', 'update']],
[['STATUS'], 'boolean'], [['STATUS'], 'boolean'],
[['REGION_TYPE', 'SETTING_TYPE'], 'in', 'range' => [1, 2], 'on' => ['insert', 'update']], [['REGION_TYPE','SETTING_TYPE'], 'in', 'range' => [1, 2],'on'=>['insert','update','o2o_update'],'message' => '{attribute}只能为1或2'],
[['BRANCH_GUID'], 'exist', 'skipOnError' => true, 'targetClass' => ShopBranch::className(), 'targetAttribute' => ['BRANCH_GUID' => 'GUID']], [['BRANCH_GUID'], 'exist', 'skipOnError' => true, 'targetClass' => ShopBranch::className(), 'targetAttribute' => ['BRANCH_GUID' => 'GUID']],
[['BRANCH_INFO'], 'match', 'pattern' => '/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u', 'message' => '只能包含中文汉字,字母,数字', 'on' => 'search'], [['BRANCH_INFO'],'match', 'pattern' => '/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u','message'=>'只能包含中文汉字,字母,数字','on' => 'search'],
[['GUID', 'REGION_TYPE'], 'required', 'on' => ['o2o_update'], 'message' => '{attribute}不能为空'], [['REGION_TYPE'], 'required','on'=>['o2o_update'],'message'=>'{attribute}不能为空'],
[['REGION_DISTR_DISTANCE', 'REGION_DISTR_PRICE', 'INCREASE_DISTANCE', 'INCREASE_PRICE', 'DELIVERY_PRICE'], 'double', 'on' => ['o2o_update']], [['REGION_DISTR_DISTANCE', 'REGION_DISTR_PRICE','INCREASE_DISTANCE','INCREASE_PRICE','DELIVERY_PRICE'], 'double','on'=>['o2o_update']],
[['REGION_DISTR_DISTANCE', 'REGION_DISTR_PRICE', 'INCREASE_DISTANCE', 'INCREASE_PRICE'], 'required', 'when' => function ($model) { [['REGION_DISTR_DISTANCE', 'REGION_DISTR_PRICE','INCREASE_DISTANCE','INCREASE_PRICE'], 'required','when' => function($model) {
return $model->REGION_TYPE == '2'; return $model->REGION_TYPE == '2';
}, 'message' => '{attribute}不能为空', 'on' => ['o2o_update']], },'message' => '费用类型为2时,{attribute}不能为空','on'=>['o2o_update']],
[['DELIVERY_PRICE'], 'required', 'when' => function ($model) { [['DELIVERY_PRICE'], 'required','when' => function($model) {
return $model->REGION_TYPE == '1'; return $model->REGION_TYPE == '1';
}, 'message' => '{attribute}不能为空', 'on' => ['o2o_update']], },'message' => '费用类型为1时,{attribute}不能为空','on'=>['o2o_update']],
]; ];
} }
...@@ -90,7 +90,7 @@ class ShopCityDistributionSetting extends BaseModel ...@@ -90,7 +90,7 @@ class ShopCityDistributionSetting extends BaseModel
'IS_OTHER_DISTR' => 'Is Other Distr', 'IS_OTHER_DISTR' => 'Is Other Distr',
'WORK_TYPE' => 'Work Type', 'WORK_TYPE' => 'Work Type',
'IS_DADA_DISTR' => 'Is Dada Distr', 'IS_DADA_DISTR' => 'Is Dada Distr',
'REGION_TYPE' => '配送类型', 'REGION_TYPE' => '费用类型',
'SIMPLE_DISTR_NOTES' => 'Simple Distr Notes', 'SIMPLE_DISTR_NOTES' => 'Simple Distr Notes',
'SIMPLE_DISTR_PIC' => 'Simple Distr Pic', 'SIMPLE_DISTR_PIC' => 'Simple Distr Pic',
'SIMPLE_DISTR_INITIAL_PRICE' => 'Simple Distr Initial Price', 'SIMPLE_DISTR_INITIAL_PRICE' => 'Simple Distr Initial Price',
...@@ -296,4 +296,26 @@ class ShopCityDistributionSetting extends BaseModel ...@@ -296,4 +296,26 @@ class ShopCityDistributionSetting extends BaseModel
$branch_info['B2C'] = $b2c; $branch_info['B2C'] = $b2c;
return $branch_info; return $branch_info;
} }
//获取起送价优惠
public function getInitialCoupon($branch_guid, $role_id)
{
$query = static::find()->alias('cs')
->select("sg.GUID,sb.SUPPROVINCE_GUID,sb.PARENT_GUID")
->leftJoin('SHOP_CITY_DISTRIBUTION_REGION sg', 'cs.GUID=sg.CITY_DISTR_GUID')
->leftJoin('SHOP_BRANCH sb', 'sb.GUID=cs.BRANCH_GUID')
->where(['cs.SETTING_TYPE' => 2]);
//当前权限允许的门店
if (isset($branch_guid) && !empty($branch_guid) && $role_id == USER_ROLE_REGION_ADMIN) {
$query->andFilterWhere(['or', ['=', 'ifnull(sb.SUPPROVINCE_GUID,cs.BRANCH_GUID)', $branch_guid], ['=', "ifnull(sb.PARENT_GUID,'')", $branch_guid]]);
$query->andWhere(['!=', 'sg.GUID', '']);
return $query->all();
} elseif (isset($branch_guid) && !empty($branch_guid) && $role_id == USER_ROLE_STORE_ADMIN) {
$query->andFilterWhere(["ifnull(cs.BRANCH_GUID,'')" => $branch_guid]);
$query->andWhere(['!=', 'sg.GUID', '']);
return $query->all();
} else {
return '';
}
}
} }
...@@ -15,7 +15,7 @@ use backend\helpers\Func; ...@@ -15,7 +15,7 @@ use backend\helpers\Func;
* @property string $NAME 姓名 * @property string $NAME 姓名
* @property string $PASSWORD 密码 * @property string $PASSWORD 密码
* @property string $ORG_GUID 组织机构号 * @property string $ORG_GUID 组织机构号
* @property string $BRANCH_GUID 如果USERGROUPGUID是店长或省级管理员,用来存门店GUID或省级GUID * @property string $BRANCH_GUID 用来存门店GUID或省级GUID
* @property string $CREATE_GUID 创建人GUID * @property string $CREATE_GUID 创建人GUID
* @property string $CREATE_NAME 创建人姓名 * @property string $CREATE_NAME 创建人姓名
* @property string $CREATE_DATE 创建时间 * @property string $CREATE_DATE 创建时间
......
<?php
namespace app\models\v1\goods;
use Yii;
use app\models\v1\BaseModel;
/**
* This is the model class for table "shop_goods".
*
* @property string $GUID
* @property string $ORG_GUID
* @property string $BRAND_GUID 所属品牌GUID
* @property string $SUPPLIER_GUID 供应商GUID
* @property string $CODE 商品编号
* @property string $NAME 商品名称
* @property string $ALIAS_NAME 商品别名
* @property string $UNIT_WEIGHT 单元重量
* @property string $VOLUME 销量
* @property string $MAIN_IMAGE_PATH 商品主图片
* @property string $MARKET_PRICE 市场价
* @property string $USER_PRICE 会员价
* @property string $STOCK_COUNT 库存
* @property string $INTEG_POINTS 该商品可增加多少积分
* @property string $MIN_BUY_COUNT 最小够买数量
* @property string $MERCHANT_GUID 商户订单号
* @property int $IS_SERVICE 是否服务中,1:是,0:否
* @property int $IS_WARNING_STOCK 是否库存预警,1:是,0:否
* @property int $IS_PUBLIC_MOBILE 是否发布APP或小程序,1:是,0:否
* @property int $IS_RECIVIE_COMMENT 是否接受评价,1:是,0:否
* @property string $DETAIL_DESCRIPTION 商品介绍
* @property string $GOODS_TAG 商品标签
* @property string $CREATE_TIME 创建时间
* @property string $UPDATE_TIME 更新时间
* @property string $CREATE_USER_GUID 创建人GUID
* @property string $UPDATE_USER_GUID 更新人GUID
* @property int $IS_REAL 是否实物,1:是,0:否
* @property string $PUBLIC_DATETIME 上线时间
* @property string $WARNING_STOCK_COUNT 预警库存,库存预警默认50
* @property string $SPEC 规格
* @property string $PRODUCTION_ENTERPRISES 生产企业
* @property int $IS_ALLOW_SALE 是否允许出售,1:是,0:否
* @property int $IS_AUDITING 是否已审核,1:是,0:否
* @property string $AUDITING_USER_GUID 审核人GUID
* @property string $AUDITING_DATETIME 审核时间
* @property int $IS_FOBIDEN 是否禁用,1:是,0:否
* @property string $FOBIDEN_USER_GUID 禁用人GUID
* @property string $FOBIDEN_DATETIME 禁用日时间
* @property int $IS_POST_FREE 是否免运费,1:是,0:否
* @property string $HOST_NAME 图品域名
* @property int $GOODS_STATE 商品状态,0:未删除,1:放入回收站 2:从购物车删除
* @property string $DOSAGE_FORM 剂型
* @property string $APPROVAL_NUMBER 批准文号
* @property string $BRAND_NAME 品牌名称
* @property string $UNIT_NAME 单位
* @property string $BAR_CODE 条形码
* @property int $IS_MATCH_DRUGDTORAGE 是否同步药品库,1:是,0:否
* @property string $LIMIT_GOODS_NUM 限购数量,0不限购
* @property string $PIC_EXTENSIONS 图品后缀
* @property int $IS_PRESCRIPTION 是否处方药,1:是,0:否
* @property int $IS_MEDICAL_INSURANCE 是否医保,1:是,0:否
* @property int $IS_MEDICINES 是否是药品 1:是,0:否
* @property string $VIRTUAL_VOLUME 虚拟销量
* @property string $STOCK_PRICE 商品进货价
* @property int $IS_ONLY_SHOW 是否只展示,1:是,0:否
* @property string $MNEMONICS_CODE 助记码
* @property int $IS_MULTI_SPEC 是否多规格,1:是,0:否
* @property string $DELIVERY_TYPE 配送方式
* @property string $DELIVERY_PRICE 配送价格
* @property string $ABSTRACT 摘要
* @property string $SHARE_NO 分享码
* @property string $BRANCH_GUID 所属门店,门店添加自己门店赠品时使用
* @property string $SECOND_RETURN_MONEY 二级返利额
* @property int $IS_SPECIAL_GOODS 是否特殊商品,1:是,0:否,特殊商品不参与营销活动
* @property int $IS_CODECHAIN_GOODS 是否冷链商品,1:是,0:否
* @property int $IS_GIFT 是否赠品,1:是,0:否
* @property string $REBATE_AMOUNT 返利额
* @property int $IS_MINUS_STOCK_COUNT_AFTER_PAY 是否支付后减库存,1:是,0:否
* @property string $DETAIL_SETTING_GUID 商品详情页模板配置GUID
* @property string $STATE_OF_ORIGIN 源产地国
* @property int $IS_EPHEDRINE 是否麻黄碱 1:是,0:否
* @property string $ITEM_CAT 商品类目
* @property string $ITEM_CAT_DES 商品类目描述
* @property string $ITEM_TYPE 商品类型
* @property string $ITEM_TYPE_DESC 商品类型描述
* @property string $MATERIEL 物料划分
* @property string $MATERIEL_DESC 物料划分描述
* @property string $ROUGH_WEIGHT 毛重
* @property string $NUM_PACKAGES 中包装数
* @property string $NUM_PACKAGES_DESC 包装描述
* @property string $STORAGE_CONDITION 储存条件
* @property int $IS_STOP_SELLING 是否停销 1:是 0:否
* @property string $THIRD_PARTY_CODE 第三方商家编码
* @property string $THIRD_PARTY_NAME 第三方商家名称
* @property string $TERMVALIDITY 有效期
* @property string $PACKAGE_LICENSE_NUMBER 分包装批准文号
* @property int $IS_CROSSB_ORDER 是否跨境,1:是 0:否
* @property string $ALL_POINTS_NUM 全积分支付所需积分
* @property string $PART_POINTS_NUM 积分+现金支付所需积分
* @property string $POINTS_PRICE 积分+现金支付所需现金
* @property string $TOTAL_PRICE 商品总金额
* @property int $IS_ADD_MUL_GOODS 是否是多规格特意添加的商品,1:是 0:否
* @property string $CUSTOMS_NUMBER 商品海关备案编码
* @property string $TAX_RATE 商品海关税率
* @property int $IS_TAX 是否含税,1:是 0:否
* @property int $IS_ADVANCE 是否预售商品,1:是 0:否
* @property string $ORDERL_IMIT 订单级商品限购数量
* @property int $IS_QA 是否质保。0:否 1:是
* @property int $QA_DATE 质保日期,默认单位月
* @property int $IS_GIFT_INTERNET 是否网络赠品。0:否 1:是
*/
class ShopGoods extends BaseModel
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'shop_goods';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['GUID', 'CODE', 'NAME'], 'required'],
[['UNIT_WEIGHT', 'VOLUME', 'MARKET_PRICE', 'USER_PRICE', 'STOCK_COUNT', 'INTEG_POINTS', 'MIN_BUY_COUNT', 'WARNING_STOCK_COUNT', 'LIMIT_GOODS_NUM', 'VIRTUAL_VOLUME', 'STOCK_PRICE', 'SECOND_RETURN_MONEY', 'REBATE_AMOUNT', 'ALL_POINTS_NUM', 'PART_POINTS_NUM', 'POINTS_PRICE', 'TOTAL_PRICE', 'TAX_RATE', 'ORDERL_IMIT'], 'number'],
[['IS_SERVICE', 'IS_WARNING_STOCK', 'IS_PUBLIC_MOBILE', 'IS_RECIVIE_COMMENT', 'IS_REAL', 'IS_ALLOW_SALE', 'IS_AUDITING', 'IS_FOBIDEN', 'IS_POST_FREE', 'GOODS_STATE', 'IS_MATCH_DRUGDTORAGE', 'IS_PRESCRIPTION', 'IS_MEDICAL_INSURANCE', 'IS_MEDICINES', 'IS_ONLY_SHOW', 'IS_MULTI_SPEC', 'IS_SPECIAL_GOODS', 'IS_CODECHAIN_GOODS', 'IS_GIFT', 'IS_MINUS_STOCK_COUNT_AFTER_PAY', 'IS_EPHEDRINE', 'IS_STOP_SELLING', 'IS_CROSSB_ORDER', 'IS_ADD_MUL_GOODS', 'IS_TAX', 'IS_ADVANCE', 'IS_QA', 'QA_DATE', 'IS_GIFT_INTERNET'], 'integer'],
[['DETAIL_DESCRIPTION', 'HOST_NAME', 'ABSTRACT'], 'string'],
[['CREATE_TIME', 'UPDATE_TIME', 'PUBLIC_DATETIME', 'AUDITING_DATETIME', 'FOBIDEN_DATETIME'], 'safe'],
[['GUID', 'ORG_GUID', 'BRAND_GUID', 'SUPPLIER_GUID', 'MERCHANT_GUID', 'CREATE_USER_GUID', 'UPDATE_USER_GUID', 'AUDITING_USER_GUID', 'FOBIDEN_USER_GUID', 'DOSAGE_FORM', 'BRAND_NAME', 'UNIT_NAME', 'BAR_CODE', 'PIC_EXTENSIONS', 'MNEMONICS_CODE', 'DELIVERY_PRICE', 'SHARE_NO', 'BRANCH_GUID', 'DETAIL_SETTING_GUID', 'STATE_OF_ORIGIN', 'ITEM_CAT', 'ITEM_CAT_DES', 'ITEM_TYPE', 'ITEM_TYPE_DESC', 'MATERIEL', 'MATERIEL_DESC', 'STORAGE_CONDITION', 'THIRD_PARTY_CODE', 'THIRD_PARTY_NAME', 'TERMVALIDITY', 'CUSTOMS_NUMBER'], 'string', 'max' => 50],
[['CODE', 'NAME', 'SPEC', 'PRODUCTION_ENTERPRISES'], 'string', 'max' => 100],
[['ALIAS_NAME', 'MAIN_IMAGE_PATH', 'APPROVAL_NUMBER', 'DELIVERY_TYPE'], 'string', 'max' => 200],
[['GOODS_TAG'], 'string', 'max' => 255],
[['ROUGH_WEIGHT', 'NUM_PACKAGES', 'NUM_PACKAGES_DESC'], 'string', 'max' => 10],
[['PACKAGE_LICENSE_NUMBER'], 'string', 'max' => 30],
[['CODE'], 'unique'],
[['GUID'], 'unique'],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'GUID' => 'Guid',
'ORG_GUID' => 'Org Guid',
'BRAND_GUID' => 'Brand Guid',
'SUPPLIER_GUID' => 'Supplier Guid',
'CODE' => 'Code',
'NAME' => 'Name',
'ALIAS_NAME' => 'Alias Name',
'UNIT_WEIGHT' => 'Unit Weight',
'VOLUME' => 'Volume',
'MAIN_IMAGE_PATH' => 'Main Image Path',
'MARKET_PRICE' => 'Market Price',
'USER_PRICE' => 'User Price',
'STOCK_COUNT' => 'Stock Count',
'INTEG_POINTS' => 'Integ Points',
'MIN_BUY_COUNT' => 'Min Buy Count',
'MERCHANT_GUID' => 'Merchant Guid',
'IS_SERVICE' => 'Is Service',
'IS_WARNING_STOCK' => 'Is Warning Stock',
'IS_PUBLIC_MOBILE' => 'Is Public Mobile',
'IS_RECIVIE_COMMENT' => 'Is Recivie Comment',
'DETAIL_DESCRIPTION' => 'Detail Description',
'GOODS_TAG' => 'Goods Tag',
'CREATE_TIME' => 'Create Time',
'UPDATE_TIME' => 'Update Time',
'CREATE_USER_GUID' => 'Create User Guid',
'UPDATE_USER_GUID' => 'Update User Guid',
'IS_REAL' => 'Is Real',
'PUBLIC_DATETIME' => 'Public Datetime',
'WARNING_STOCK_COUNT' => 'Warning Stock Count',
'SPEC' => 'Spec',
'PRODUCTION_ENTERPRISES' => 'Production Enterprises',
'IS_ALLOW_SALE' => 'Is Allow Sale',
'IS_AUDITING' => 'Is Auditing',
'AUDITING_USER_GUID' => 'Auditing User Guid',
'AUDITING_DATETIME' => 'Auditing Datetime',
'IS_FOBIDEN' => 'Is Fobiden',
'FOBIDEN_USER_GUID' => 'Fobiden User Guid',
'FOBIDEN_DATETIME' => 'Fobiden Datetime',
'IS_POST_FREE' => 'Is Post Free',
'HOST_NAME' => 'Host Name',
'GOODS_STATE' => 'Goods State',
'DOSAGE_FORM' => 'Dosage Form',
'APPROVAL_NUMBER' => 'Approval Number',
'BRAND_NAME' => 'Brand Name',
'UNIT_NAME' => 'Unit Name',
'BAR_CODE' => 'Bar Code',
'IS_MATCH_DRUGDTORAGE' => 'Is Match Drugdtorage',
'LIMIT_GOODS_NUM' => 'Limit Goods Num',
'PIC_EXTENSIONS' => 'Pic Extensions',
'IS_PRESCRIPTION' => 'Is Prescription',
'IS_MEDICAL_INSURANCE' => 'Is Medical Insurance',
'IS_MEDICINES' => 'Is Medicines',
'VIRTUAL_VOLUME' => 'Virtual Volume',
'STOCK_PRICE' => 'Stock Price',
'IS_ONLY_SHOW' => 'Is Only Show',
'MNEMONICS_CODE' => 'Mnemonics Code',
'IS_MULTI_SPEC' => 'Is Multi Spec',
'DELIVERY_TYPE' => 'Delivery Type',
'DELIVERY_PRICE' => 'Delivery Price',
'ABSTRACT' => 'Abstract',
'SHARE_NO' => 'Share No',
'BRANCH_GUID' => 'Branch Guid',
'SECOND_RETURN_MONEY' => 'Second Return Money',
'IS_SPECIAL_GOODS' => 'Is Special Goods',
'IS_CODECHAIN_GOODS' => 'Is Codechain Goods',
'IS_GIFT' => 'Is Gift',
'REBATE_AMOUNT' => 'Rebate Amount',
'IS_MINUS_STOCK_COUNT_AFTER_PAY' => 'Is Minus Stock Count After Pay',
'DETAIL_SETTING_GUID' => 'Detail Setting Guid',
'STATE_OF_ORIGIN' => 'State Of Origin',
'IS_EPHEDRINE' => 'Is Ephedrine',
'ITEM_CAT' => 'Item Cat',
'ITEM_CAT_DES' => 'Item Cat Des',
'ITEM_TYPE' => 'Item Type',
'ITEM_TYPE_DESC' => 'Item Type Desc',
'MATERIEL' => 'Materiel',
'MATERIEL_DESC' => 'Materiel Desc',
'ROUGH_WEIGHT' => 'Rough Weight',
'NUM_PACKAGES' => 'Num Packages',
'NUM_PACKAGES_DESC' => 'Num Packages Desc',
'STORAGE_CONDITION' => 'Storage Condition',
'IS_STOP_SELLING' => 'Is Stop Selling',
'THIRD_PARTY_CODE' => 'Third Party Code',
'THIRD_PARTY_NAME' => 'Third Party Name',
'TERMVALIDITY' => 'Termvalidity',
'PACKAGE_LICENSE_NUMBER' => 'Package License Number',
'IS_CROSSB_ORDER' => 'Is Crossb Order',
'ALL_POINTS_NUM' => 'All Points Num',
'PART_POINTS_NUM' => 'Part Points Num',
'POINTS_PRICE' => 'Points Price',
'TOTAL_PRICE' => 'Total Price',
'IS_ADD_MUL_GOODS' => 'Is Add Mul Goods',
'CUSTOMS_NUMBER' => 'Customs Number',
'TAX_RATE' => 'Tax Rate',
'IS_TAX' => 'Is Tax',
'IS_ADVANCE' => 'Is Advance',
'ORDERL_IMIT' => 'Orderl Imit',
'IS_QA' => 'Is Qa',
'QA_DATE' => 'Qa Date',
'IS_GIFT_INTERNET' => 'Is Gift Internet',
];
}
}
<?php
namespace app\models\v1\transport;
use app\models\v1\rbacuser\ShopRbacUser;
use Yii;
use app\models\v1\branch\ShopCityDistributionSetting;
use yii\web\HttpException;
class ScdsImport extends ShopCityDistributionSetting
{
//用来导入数据时使用
public $branchCodeArr=[];//门店code数组
public $branchCode='';//门店code
/**
* {@inheritdoc}
*/
public function rules()
{
$sonRules = [
[['branchCodeArr'], 'validateEffective'],
[['branchCode'], 'required','message' => '{attribute}不能为空'],
];
return array_merge(parent::rules(),$sonRules);
}
public function attributeLabels()
{
$sonAttri = [
'branchCode'=>'门店编码'
];
return array_merge(parent::attributeLabels(),$sonAttri);
}
//验证用户有没有权限修改导入门店电子围栏信息
public function validateEffective($attribute)
{
$rbacUserModel = new ShopRbacUser();
$userGuid = Yii::$app->user->identity->GUID;
$userInfo = $rbacUserModel->getRbacUserInfo($userGuid);
switch ($userInfo['BRANCH_TYPE']) {
case BRANCH_TYPE_HEADQUARTERS://总部
$branchGuid = '';
$parentGuid = '';
break;
case BRANCH_TYPE_REGION://省级/分公司
$branchGuid = $userInfo['BRANCH_GUID'];
$parentGuid = $userInfo['BRANCH_GUID'];
break;
case BRANCH_TYPE_STORE://门店
$branchGuid = $userInfo['BRANCH_GUID'];
$parentGuid = '';
break;
default:
throw new HttpException(500,'不存在的门店等级');
break;
}
$codeArr = $this::find()
->select('CODE')
->from('SHOP_BRANCH')
->where(['CODE' => $this->branchCodeArr])
->andFilterWhere(['or',['GUID' => $branchGuid],['PARENT_GUID' => $parentGuid]])
->asArray()
->all();
$tempArr = [];
foreach ($codeArr as $value) {
$tempArr[] = $value['CODE'];
}
$diff = array_diff($this->branchCodeArr,$tempArr);
if (!empty($diff)) {
$this->addError($attribute, '门店编码为'.implode(',',$diff).'的门店不存在或者您没有权限操作此门店.');
}
}
}
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