Commit ce00d998 authored by 侯贺政's avatar 侯贺政

运费模板编辑

Signed-off-by: 侯贺政's avatarhouhezheng <houhezheng@romens.cn>
parent cc25aa8f
...@@ -227,6 +227,7 @@ return [ ...@@ -227,6 +227,7 @@ return [
'extraPatterns'=>[ 'extraPatterns'=>[
'GET,OPTIONS transport-templates' => 'transport-templates', 'GET,OPTIONS transport-templates' => 'transport-templates',
'GET,OPTIONS transport-fee-details' => 'transport-fee-details', 'GET,OPTIONS transport-fee-details' => 'transport-fee-details',
'PUT,OPTIONS transport-fee-update' => 'transport-fee-update',
], ],
], ],
//o2o起送价设置 //o2o起送价设置
......
...@@ -8,8 +8,11 @@ use app\models\v1\transport\ShopPackagingcostsBranches; ...@@ -8,8 +8,11 @@ use app\models\v1\transport\ShopPackagingcostsBranches;
use app\models\v1\shopuser\ShopUserMembergrade; use app\models\v1\shopuser\ShopUserMembergrade;
use app\models\v1\transport\ShopTransportType; use app\models\v1\transport\ShopTransportType;
use backend\controllers\v1\BaseController; use backend\controllers\v1\BaseController;
use backend\helpers\Func;
use Yii; use Yii;
use yii\web\BadRequestHttpException; use yii\web\BadRequestHttpException;
use yii\web\HttpException;
use yii\web\ServerErrorHttpException;
class TransportSettingController extends BaseController class TransportSettingController extends BaseController
{ {
...@@ -78,7 +81,7 @@ class TransportSettingController extends BaseController ...@@ -78,7 +81,7 @@ class TransportSettingController extends BaseController
* SELECT_AREA:配送城市, * SELECT_AREA:配送城市,
* DESCRIPTION:简介, * DESCRIPTION:简介,
* LIMIT_MEMBER_GROUP_GUID:限制人群, * LIMIT_MEMBER_GROUP_GUID:限制人群,
* GROUP_GUID:权限(所属门店GUID), * GROUP_GUID:权限,
* TRANSPOR_TTYPE_ALL:所有运送方式列表 * TRANSPOR_TTYPE_ALL:所有运送方式列表
* GUID:运送方式guid, * GUID:运送方式guid,
* NAME:运送方式名称, * NAME:运送方式名称,
...@@ -107,6 +110,7 @@ class TransportSettingController extends BaseController ...@@ -107,6 +110,7 @@ class TransportSettingController extends BaseController
} }
$info['SELECT_AREA'] = explode(',', $info['SELECT_AREA']); $info['SELECT_AREA'] = explode(',', $info['SELECT_AREA']);
$info['LIMIT_MEMBER_GROUP_GUID'] = explode(',', $info['LIMIT_MEMBER_GROUP_GUID']); $info['LIMIT_MEMBER_GROUP_GUID'] = explode(',', $info['LIMIT_MEMBER_GROUP_GUID']);
$transType = (new ShopTransportType)->BranchTransportInfo(); $transType = (new ShopTransportType)->BranchTransportInfo();
$info['TRANSPOR_TTYPE_ALL'] = $transType; //所有运送方式 $info['TRANSPOR_TTYPE_ALL'] = $transType; //所有运送方式
$memberGroup = ShopUserMembergrade::find()->select(['GUID', 'NAME'])->all(); $memberGroup = ShopUserMembergrade::find()->select(['GUID', 'NAME'])->all();
...@@ -118,8 +122,8 @@ class TransportSettingController extends BaseController ...@@ -118,8 +122,8 @@ class TransportSettingController extends BaseController
$permit = 1; $permit = 1;
$branchInfo = ShopBranch::find()->select(['BRANCH_TYPE', 'SUPPROVINCE_GUID'])->where(['GUID' => $info['GROUP_GUID']]); $branchInfo = ShopBranch::find()->select(['BRANCH_TYPE', 'SUPPROVINCE_GUID'])->where(['GUID' => $info['GROUP_GUID']]);
$userInfo = (new ShopRbacUser)->getRbacUserInfo(Yii::$app->user->identity->GUID); $userInfo = (new ShopRbacUser)->getRbacUserInfo(Yii::$app->user->identity->GUID);
//总部权限管理员1,分部管理员权限2,门店权限3。非权限内不可保存编辑 //总部权限管理员1,分部管理员权限2。非权限内不可保存编辑
if (!in_array($userInfo['ROLE_ID'], [1, 2])) { if (!in_array($userInfo['ROLE_ID'], [USER_ROLE_REGION_ADMIN, USER_ROLE_HEADQUARTERS_ADMIN])) {
$permit = 0; $permit = 0;
} }
//分部管理员权限2,分部管理员所属上级与运送模板创建所属上级不一致时不准保存编辑 //分部管理员权限2,分部管理员所属上级与运送模板创建所属上级不一致时不准保存编辑
...@@ -129,4 +133,121 @@ class TransportSettingController extends BaseController ...@@ -129,4 +133,121 @@ class TransportSettingController extends BaseController
$info['IS_PERMIT'] = $permit; //是否准许编辑保存,1:准许保存编辑,0:禁止保存编辑 $info['IS_PERMIT'] = $permit; //是否准许编辑保存,1:准许保存编辑,0:禁止保存编辑
return $info; return $info;
} }
/**
* @OA\Put(
* path="/backend/web/v1/transport/transport-settings/transport-fee-update",
* tags={"配送管理"},
* summary="更新运费模板信息详情(侯贺政)",
* description="更新(运费模板信息详情",
* @OA\RequestBody(
* required=true,
* description="注:模板GUID、配送方式、是否启用必填,其他根据需要选填;限制人群、配送城市、指定省级多项使用英文逗号隔开。",
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"GUID","TRANSPOR_TTYPE","IS_USED"},
* @OA\Property(property="GUID", type="string",description="运费模板GUID"),
* @OA\Property(property="TRANSPOR_TTYPE" ,type="string", description="配送方式"),
* @OA\Property(property="BASE_FEE", type="float(18,2)",description="统一费用(元)"),
* @OA\Property(property="BASE_WEIGHT", type="string",description="首重(克)"),
* @OA\Property(property="BASE_WEIGHT_FEE", type="float(18,2)",description="首重费用(元)"),
* @OA\Property(property="INCREASE_WEIGHT", type="string",description="续重(克)"),
* @OA\Property(property="INCREASE_WEIGHT_FEE", type="float(18,2)",description="续重费用(元)"),
* @OA\Property(property="IS_USED", type="int",description="是否启用(默认启用)",example="1"),
* @OA\Property(property="DESCRIPTION", type="string",description="简介"),
* @OA\Property(property="LIMIT_MEMBER_GROUP_GUID", type="string",description="限制人群(GUID)"),
* @OA\Property(property="SELECT_AREA", type="string",description="配送城市(GUID)"),
* @OA\Property(property="BRANCHES_INFO", type="string",description="指定省级(GUID)"),
*
* )
* ),
* ),
* @OA\Response(
* response=200,
* description="更新成功!"
* ),
* security={{"Authorization":{}}},
* )
*/
public function actionTransportFeeUpdate()
{
$params = Yii::$app->request->bodyParams;
$model = new $this->modelClass();
$_model = $model::findOne($params['GUID']);
if (!$_model) {
throw new BadRequestHttpException('Requested resource does not exist !');
}
//验证权限
// $branchInfo = ShopBranch::find()->select(['BRANCH_TYPE', 'SUPPROVINCE_GUID'])->where(['GUID' => $_model['GROUP_GUID']])->one(); //门店管理权限,或三级及以下权限用
$userInfo = (new ShopRbacUser)->getRbacUserInfo(Yii::$app->user->identity->GUID);
//分部管理员权限2,(当同为省级,非管理员所属省级不可编辑;属于上级创建可编辑)
if ($userInfo['ROLE_ID'] == USER_ROLE_REGION_ADMIN && ($userInfo['BRANCH_GUID'] != $_model['GROUP_GUID']) && ($userInfo['PARENT_BRANCH_GUID'] != $_model['GROUP_GUID'])) {
throw new BadRequestHttpException('没有修改权限!');
}
$_model->attributes = [
"TRANSPOR_TTYPE" => $params['TRANSPOR_TTYPE'],
"BASE_FEE" => is_numeric($params['BASE_FEE']) ? $params['BASE_FEE'] : 0,
"BASE_WEIGHT" => is_numeric($params['BASE_WEIGHT']) ? $params['BASE_WEIGHT'] : '0',
"BASE_WEIGHT_FEE" => is_numeric($params['BASE_WEIGHT_FEE']) ? $params['BASE_WEIGHT_FEE'] : 0,
"INCREASE_WEIGHT" => is_numeric($params['INCREASE_WEIGHT']) ? $params['INCREASE_WEIGHT'] : '0',
"INCREASE_WEIGHT_FEE" => is_numeric($params['INCREASE_WEIGHT_FEE']) ? $params['INCREASE_WEIGHT_FEE'] : 0,
"IS_USED" => is_null($params['IS_USED']) ? 1 : $params['IS_USED'],
"DESCRIPTION" => $params['DESCRIPTION'],
"LIMIT_MEMBER_GROUP_GUID" => $params['LIMIT_MEMBER_GROUP_GUID'],
"SELECT_AREA" => $params['SELECT_AREA'],
];
//删除条件:总部权限删除所有,省级只能删除自己。
switch ($userInfo['ROLE_ID']) {
case '1':
$where = ['ACTIVITY_GUID' => $params['GUID']];
break;
case '2':
$where = ['ACTIVITY_GUID' => $params['GUID'], 'BRANCH_GUID' => $userInfo['BRANCH_GUID']];
break;
default:
$where = "1>2";
break;
}
//开启事务
$packagingcostsBranches = new ShopPackagingcostsBranches();
$transaction = $packagingcostsBranches->getDb()->beginTransaction();
try {
//先删除所有省级
$packagingcostsBranches->deleteAll($where);
//如果存在省级重新添加到数据库
if (!empty($params['BRANCHES_INFO'])) {
$branches = explode(',', $params['BRANCHES_INFO']);
foreach ($branches as $value) {
$branch_list[] = [
Func::create_guid(),
Yii::$app->user->identity->ORG_GUID,
$params['GUID'],
$value,
'TRANSPORTFEE',
date('Y-m-d H:i:s')
];
}
$keys = ['GUID', 'ORG_GUID', 'ACTIVITY_GUID', 'BRANCH_GUID', 'ACTIVITY_TYPE', 'CREATE_TIME'];
$packagingcostsBranches->getDb()->createCommand()->batchInsert($packagingcostsBranches::tableName(), $keys, $branch_list)->execute();
}
$transaction->commit();
} catch (\Throwable $th) {
$transaction->rollBack();
throw new ServerErrorHttpException($th);
}
//如果是总部创建的模板门店不能修改shop_transport_setting 数据
if ($userInfo['PARENT_BRANCH_GUID'] != $_model['GROUP_GUID']) {
if (!$_model->save()) {
Yii::$app->response->statusCode = 422;
return $_model->errors;
}
}
throw new HttpException(200, "更新成功!");
}
} }
...@@ -13,7 +13,7 @@ use Yii; ...@@ -13,7 +13,7 @@ use Yii;
* @property string|null $BRANCH_GUID 门店guid * @property string|null $BRANCH_GUID 门店guid
* @property string|null $ACTIVITY_TYPE 活动类型,包装费(PACKAGING_COSTS) * @property string|null $ACTIVITY_TYPE 活动类型,包装费(PACKAGING_COSTS)
* @property string|null $CREATE_TIME 添加时间 * @property string|null $CREATE_TIME 添加时间
* @property string|null $YGROUP_CODE * @property string|null $YGROUP_CODE 权限(当前角色所属门店GUID)
*/ */
class ShopPackagingcostsBranches extends \app\models\v1\BaseModel class ShopPackagingcostsBranches extends \app\models\v1\BaseModel
{ {
......
...@@ -25,7 +25,7 @@ use yii\data\ActiveDataProvider; ...@@ -25,7 +25,7 @@ use yii\data\ActiveDataProvider;
* @property int|null $IS_USED 是否启用 * @property int|null $IS_USED 是否启用
* @property string $PLATFORM_TYPE 运费模板所属平台(shop,points)默认shop * @property string $PLATFORM_TYPE 运费模板所属平台(shop,points)默认shop
* @property string|null $LIMIT_MEMBER_GROUP_GUID 限制人群 * @property string|null $LIMIT_MEMBER_GROUP_GUID 限制人群
* @property string|null $GROUP_GUID 权限(所属门店 * @property string|null $GROUP_GUID 权限(当前角色所属门店GUID
*/ */
class TransportSetting extends \app\models\v1\BaseModel class TransportSetting extends \app\models\v1\BaseModel
{ {
...@@ -84,24 +84,23 @@ class TransportSetting extends \app\models\v1\BaseModel ...@@ -84,24 +84,23 @@ class TransportSetting extends \app\models\v1\BaseModel
* @params string $platform_type 运费模板所属平台 * @params string $platform_type 运费模板所属平台
* @return array|null 返回运费模板列表 * @return array|null 返回运费模板列表
*/ */
public function templates($platform_type, $where = []) public function templates($platform_type)
{ {
$userInfo = (new ShopRbacUser)->getRbacUserInfo(Yii::$app->user->identity->GUID); $userInfo = (new ShopRbacUser)->getRbacUserInfo(Yii::$app->user->identity->GUID);
//省级权限,只展示省级所属的信息 //省级权限,只展示省级所属的信息
if ($userInfo['ROLE_ID'] == 2) { $activityGUID = [];
if ($userInfo['ROLE_ID'] == USER_ROLE_REGION_ADMIN) {
$array = ShopPackagingcostsBranches::transportSetting($userInfo['BRANCH_GUID']); $array = ShopPackagingcostsBranches::transportSetting($userInfo['BRANCH_GUID']);
$activityGUID = [];
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
$activityGUID[] = $value['ACTIVITY_GUID']; $activityGUID[] = $value['ACTIVITY_GUID'];
} }
$where = ['ts.GUID' => $activityGUID];
} }
$query = static::find()->alias('ts') $query = static::find()->alias('ts')
->select(['ts.GUID', 'stt.NAME as TRANSPORT_NAME', 'ts.BASE_FEE', 'ts.BASE_WEIGHT', 'ts.BASE_WEIGHT_FEE', 'ts.IS_USED', 'ts.SELECT_AREA']) ->select(['ts.GUID', 'stt.NAME as TRANSPORT_NAME', 'ts.BASE_FEE', 'ts.BASE_WEIGHT', 'ts.BASE_WEIGHT_FEE', 'ts.IS_USED', 'ts.SELECT_AREA'])
->leftJoin('shop_transport_type stt', 'ts.TRANSPOR_TTYPE=stt.GUID') ->leftJoin('shop_transport_type stt', 'ts.TRANSPOR_TTYPE=stt.GUID')
->where(['ts.PLATFORM_TYPE' => $platform_type]) ->where(['ts.PLATFORM_TYPE' => $platform_type])
->andWhere($where); ->andFilterWhere(['ts.GUID' => $activityGUID]);
$dataProvider = new ActiveDataProvider([ $dataProvider = new ActiveDataProvider([
'query' => $query->asArray(), 'query' => $query->asArray(),
......
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