Commit d167f002 authored by 孙磊's avatar 孙磊

O2O起送价 权限优化

Signed-off-by: 孙磊's avatarsunlei <sunlei@romens.cn>
parent 19bdda2e
...@@ -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;
} }
......
...@@ -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)) {
......
...@@ -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 '';
}
}
} }
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