Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
newShopBack
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
newshop
newShopBack
Commits
a630d76e
Commit
a630d76e
authored
Dec 19, 2019
by
侯贺政
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商品详情页模板
Signed-off-by:
houhezheng
<
houhezheng@romens.cn
>
parent
272cc68c
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
467 additions
and
19 deletions
+467
-19
urlmanager.php
backend/config/urlmanager.php
+4
-2
GoodsDetailSettingController.php
...controllers/v1/shopgoods/GoodsDetailSettingController.php
+289
-0
ShopGoods.php
backend/models/v1/shopgoods/ShopGoods.php
+20
-0
ShopGoodsDetailSetting.php
backend/models/v1/shopgoods/ShopGoodsDetailSetting.php
+152
-0
ShopPackagingcostsBranches.php
backend/models/v1/transport/ShopPackagingcostsBranches.php
+2
-17
No files found.
backend/config/urlmanager.php
View file @
a630d76e
...
...
@@ -345,12 +345,14 @@ return [
],
'extraPatterns'
=>
[
'GET,OPTIONS setting-list'
=>
'setting-list'
,
'GET,OPTIONS setting-deta
ls'
=>
'setting-deta
ls'
,
'GET,OPTIONS setting-deta
ils'
=>
'setting-detai
ls'
,
'POST,OPTIONS setting-add'
=>
'setting-add'
,
'PUT,OPTIONS setting-update'
=>
'setting-update'
,
'DELETE,OPTIONS setting-del'
=>
'setting-del'
,
'POST,OPTIONS associated-goods-import'
=>
'associated-goods-import'
,
'POST,OPTIONS associated-goods'
=>
'associated-goods'
,
'POST,OPTIONS associated-goods-add'
=>
'associated-goods-add'
,
'GET,OPTIONS associated-goods-list'
=>
'associated-goods-list'
,
'DELETE,OPTIONS associated-goods-del'
=>
'associated-goods-del'
,
]
],
],
...
...
backend/controllers/v1/shopgoods/GoodsDetailSettingController.php
0 → 100644
View file @
a630d76e
<?php
namespace
backend\controllers\v1\shopgoods
;
use
app\models\v1\shopgoods\ShopGoods
;
use
Yii
;
use
backend\controllers\v1\BaseController
;
use
yii\web\BadRequestHttpException
;
use
yii\web\HttpException
;
use
yii\web\ServerErrorHttpException
;
class
GoodsDetailSettingController
extends
BaseController
{
public
$modelClass
=
'app\models\v1\shopgoods\ShopGoodsDetailSetting'
;
/**
* @OA\GET(
* path="/backend/web/v1/shopgoods/goods-detail-settings/setting-list",
* tags={"商品管理"},
* summary="商品详情页模板列表(侯贺政)",
* description="商品详情页模板列表",
* @OA\Parameter(name="page",in="query",description="分页页码",@OA\Schema(type="int")),
* @OA\Parameter(name="NAME",in="query",description="版本名称",@OA\Schema(type="string")),
* @OA\Parameter(name="STATUS",in="query",description="状态(1:启用,0:禁用)",@OA\Schema(type="int")),
* @OA\parameter(name="START_TIME",in="query",description="生效开始时间(Y-m-d H:i:s)",@OA\Schema(type="date")),
* @OA\parameter(name="END_TIME",in="query",description="生效结束时间(Y-m-d H:i:s)",@OA\Schema(type="date")),
* @OA\Response(response=200,description="
* GUID:模板GUID,
* NAME:版式名称,
* NUM:已关联商品(个),
* STATUS:状态,1:启用,0:禁用,
* START_TIME:生效开始时间,
* END_TIME:生效结束时间"),
* security={{"Authorization": {}}}
* )
*/
public
function
actionSettingList
()
{
$params
=
Yii
::
$app
->
request
->
queryParams
;
$model
=
new
$this
->
modelClass
();
$model
->
attributes
=
$params
;
if
(
!
$model
->
validate
())
{
Yii
::
$app
->
response
->
statusCode
=
200
;
return
$model
->
errors
;
}
$list
=
$model
->
goodsDetailList
(
$params
);
if
(
!
$list
->
getModels
())
{
throw
new
BadRequestHttpException
(
'未找到符合条件的数据'
);
}
return
$list
;
}
/**
* @OA\GET(
* path="/backend/web/v1/shopgoods/goods-detail-settings/setting-details",
* tags={"商品管理"},
* summary="商品详情页模板设置详情(侯贺政)",
* description="商品详情页模板设置详情",
* @OA\Parameter(name="GUID",in="query",required=true,description="模板GUID",@OA\Schema(type="string")),
* @OA\Response(response=200,description="
* GUID:模板GUID,
* NAME:版式名称,
* NUM:已关联商品(个),
* STATUS:状态,1:启用,0:禁用,
* START_TIME:生效开始时间,
* END_TIME:生效结束时间,
* HEAD_PIC_URL:顶部内容,
* FOOT_PIC_URL:底部内容"),
* security={{"Authorization": {}}}
* )
*/
public
function
actionSettingDetails
()
{
$guid
=
Yii
::
$app
->
request
->
get
(
'GUID'
);
$model
=
new
$this
->
modelClass
();
$info
=
$model
::
findOne
(
$guid
);
if
(
!
$info
)
{
throw
new
BadRequestHttpException
(
'不存在该模板!'
);
}
return
$info
;
}
/**
* @OA\PUT(
* path="/backend/web/v1/shopgoods/goods-detail-settings/setting-update",
* tags={"商品管理"},
* summary="更新商品详情页模板设置(侯贺政)",
* description="更新商品详情页模板设置",
* @OA\RequestBody(
* required=true,
* description="注:时间格式为 Y-m-d H:i:s;启用按钮也用此接口,传入GUID,STATUS即可。",
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"GUID"},
* @OA\Property(property="GUID",type="string",description="模板GUID"),
* @OA\Property(property="NAME",type="string",description="版式名称"),
* @OA\Property(property="STATUS",type="int",description="状态(1:启用,0:禁用)"),
* @OA\Property(property="START_TIME",type="date",description="生效开始时间(Y-m-d H:i:s)"),
* @OA\Property(property="END_TIME",type="date",description="生效结束时间(Y-m-d H:i:s)"),
* @OA\Property(property="HEAD_PIC_URL",type="string",description="顶部内容"),
* @OA\Property(property="FOOT_PIC_URL",type="string",description="底部内容"),
* )
* )
* ),
* @OA\Response(
* response=200,
* description="更新成功!"
* ),
* @OA\Response(
* response=422,
* description="数据验证错误,错误信息(数组)。",
* ),
* security={{"Authorization":{}}},
* )
*/
public
function
actionSettingUpdate
()
{
$params
=
Yii
::
$app
->
request
->
bodyParams
;
$model
=
new
$this
->
modelClass
();
$_model
=
$model
::
findOne
(
$params
[
'GUID'
]);
if
(
!
$_model
)
{
throw
new
BadRequestHttpException
(
'该模板不存在'
);
}
//过滤掉部分为空的参数
foreach
(
$params
as
$key
=>
$value
)
{
if
(
in_array
(
$key
,
[
'STATUS'
,
'START_TIME'
,
'END_TIME'
])
&&
empty
(
trim
(
$value
)))
{
unset
(
$params
[
$key
]);
}
}
$_model
->
attributes
=
$params
;
if
(
!
$_model
->
save
())
{
Yii
::
$app
->
response
->
statusCode
=
422
;
return
$_model
->
errors
;
}
throw
new
HttpException
(
200
,
'更新成功'
);
}
/**
* @OA\POST(
* path="/backend/web/v1/shopgoods/goods-detail-settings/setting-add",
* tags={"商品管理"},
* summary="新建商品详情页模板设置(侯贺政)",
* description="新建商品详情页模板设置",
* @OA\RequestBody(
* required=true,
* description="注:时间格式为 Y-m-d H:i:s",
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"STATUS"},
* @OA\Property(property="NAME",type="string",description="版式名称"),
* @OA\Property(property="STATUS",type="int",description="状态(默认1:启用,0:禁用)",example="1"),
* @OA\Property(property="START_TIME",type="date",description="生效开始时间(Y-m-d H:i:s)"),
* @OA\Property(property="END_TIME",type="date",description="生效结束时间(Y-m-d H:i:s)"),
* @OA\Property(property="HEAD_PIC_URL",type="string",description="顶部内容"),
* @OA\Property(property="FOOT_PIC_URL",type="string",description="底部内容"),
* )
* )
* ),
* @OA\Response(
* response=200,
* description="保存成功!"
* ),
* @OA\Response(
* response=422,
* description="数据验证错误,错误信息(数组)。",
* ),
* security={{"Authorization":{}}},
* )
*/
public
function
actionSettingAdd
()
{
$params
=
Yii
::
$app
->
request
->
bodyParams
;
$orgGuid
=
Yii
::
$app
->
user
->
identity
->
ORG_GUID
;
$model
=
new
$this
->
modelClass
();
$model
->
senario
=
'creation'
;
$model
->
attributes
=
$params
;
$model
->
ORG_GUID
=
$orgGuid
;
$model
->
GUID
=
str_shuffle
(
uniqid
()
.
rand
(
1000
,
9999
))
.
$orgGuid
;;
if
(
!
$model
->
save
())
{
Yii
::
$app
->
response
->
statusCode
=
422
;
return
$model
->
errors
;
}
throw
new
HttpException
(
200
,
'创建成功'
);
}
/**
* @OA\GET(
* path="/backend/web/v1/shopgoods/goods-detail-settings/associated-goods-list",
* tags={"商品管理"},
* summary="获取关联商品列表(侯贺政)",
* description="注:如果不传pageSize字段默认分页,每页数据条数为后台默认条数;如果传pageSize字段则不分页,输出所有数据。pageSize值任意,字段存在不传值亦可获取所有数据。",
* @OA\Parameter(name="page",in="query",description="分页页码",@OA\Schema(type="int")),
* @OA\Parameter(name="pageSize",in="query",description="每页条数(注意备注描述)",@OA\Schema(type="int")),
* @OA\Parameter(name="GUID",in="query",required=true,description="模板GUID",@OA\Schema(type="string")),
* @OA\Response(response=200,description="
* GUID:商品GUID,
* NAME:商品名称,
* CODE:商品编码,
* MAIN_IMAGE_PATH:商品主图"),
* security={{"Authorization": {}}}
* )
*/
public
function
actionAssociatedGoodsList
()
{
$params
=
Yii
::
$app
->
request
->
queryParams
;
$associatedGoods
=
(
new
ShopGoods
)
->
associatedGoods
(
$params
);
if
(
!
$associatedGoods
)
{
throw
new
BadRequestHttpException
(
'未找到符合条件的数据'
);
}
return
$associatedGoods
;
}
/**
* @OA\POST(
* path="/backend/web/v1/shopgoods/goods-detail-settings/associated-goods-add",
* tags={"商品管理"},
* summary="添加关联商品(侯贺政)",
* description="添加关联商品",
* @OA\RequestBody(
* required=true,
* description="",
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* required={"GOODS_GUID","DETAIL_SETTING_GUID"},
* @OA\Property(property="GOODS_GUID",type="string",description="商品GUID(多个用逗号隔开)"),
* @OA\Property(property="DETAIL_SETTING_GUID",type="string",description="商品详情页模板guid"),
* )
* )
* ),
* @OA\Response(
* response=200,
* description="添加成功"
* ),
* security={{"Authorization":{}}}
* )
*/
public
function
actionAssociatedGoodsAdd
()
{
$params
=
Yii
::
$app
->
request
->
bodyParams
;
$goodsGuids
=
explode
(
','
,
$params
[
'GOODS_GUID'
]);
$res
=
ShopGoods
::
updateAll
([
'DETAIL_SETTING_GUID'
=>
$params
[
'DETAIL_SETTING_GUID'
]],
[
'GUID'
=>
$goodsGuids
]);
if
(
!
$res
)
{
throw
new
ServerErrorHttpException
(
'添加失败'
);
}
throw
new
HttpException
(
200
,
'添加成功'
);
}
/**
* @OA\DELETE(
* path="/backend/web/v1/shopgoods/goods-detail-settings/associated-goods-del",
* tags={"商品管理"},
* summary="删除单个关联商品(侯贺政)",
* description="删除单个关联商品",
* @OA\Parameter(
* description="要删除的关联商品GUID",
* in="query",
* name="GUID",
* required=true,
* @OA\Schema(
* type="string",
* )
* ),
* @OA\Response(
* response=200,
* description="删除成功!"
* ),
* security={{"Authorization":{}}},
* )
*/
public
function
actionAssociatedGoodsDel
()
{
$guid
=
Yii
::
$app
->
request
->
get
(
'GUID'
);
$goodsInfo
=
ShopGoods
::
findOne
(
$guid
);
if
(
!
$goodsInfo
)
{
throw
new
BadRequestHttpException
(
'不存在的商品'
);
}
$goodsInfo
->
DETAIL_SETTING_GUID
=
''
;
if
(
$goodsInfo
->
save
(
false
))
{
throw
new
ServerErrorHttpException
(
'删除失败'
);
}
throw
new
HttpException
(
200
,
'删除成功'
);
}
}
backend/models/v1/shopgoods/ShopGoods.php
View file @
a630d76e
...
...
@@ -4,6 +4,7 @@ namespace app\models\v1\shopgoods;
use
Yii
;
use
app\models\v1\BaseModel
;
use
yii\data\ActiveDataProvider
;
/**
* This is the model class for table "shop_goods".
...
...
@@ -250,6 +251,7 @@ class ShopGoods extends BaseModel
'IS_GIFT_INTERNET'
=>
'Is Gift Internet'
,
];
}
/**
* 获取商品信息
*/
...
...
@@ -260,4 +262,22 @@ class ShopGoods extends BaseModel
->
where
([
'CODE'
=>
$code
])
->
all
();
}
/**
* 关联商品列表
* @param array $params 参数数组(GUID,page)
* @return array|null 商品列表
*/
public
function
associatedGoods
(
$params
)
{
$query
=
static
::
find
()
->
select
(
'GUID,CODE,NAME,MAIN_IMAGE_PATH'
)
->
where
([
'DETAIL_SETTING_GUID'
=>
$params
[
'GUID'
]]);
return
new
ActiveDataProvider
([
'query'
=>
$query
->
asArray
(),
'pagination'
=>
[
'pageSize'
=>
isset
(
$params
[
'pageSize'
])
?
0
:
PAGE_SIZE
,
]
]);
}
}
backend/models/v1/shopgoods/ShopGoodsDetailSetting.php
0 → 100644
View file @
a630d76e
<?php
namespace
app\models\v1\shopgoods
;
use
Yii
;
use
yii\data\ActiveDataProvider
;
/**
* This is the model class for table "shop_goodsdetail_setting".
*
* @property string $GUID 主键关联shop_goods表
* @property string|null $ORG_GUID 组织机构号
* @property string|null $NAME 版式名称
* @property int|null $STATUS 状态,1:启用,0:禁用
* @property int|null $START_TIME 生效开始时间
* @property int|null $END_TIME 生效结束时间
* @property string|null $HEAD_PIC_URL 顶部图片地址
* @property string|null $FOOT_PIC_URL 底部图片地址
*/
class
ShopGoodsDetailSetting
extends
\app\models\v1\BaseModel
{
public
$NUM
;
//已关联商品数量
/**
* {@inheritdoc}
*/
public
static
function
tableName
()
{
return
'shop_goodsdetail_setting'
;
}
/**
* {@inheritdoc}
*/
public
function
rules
()
{
return
[
[[
'GUID'
],
'required'
,
'on'
=>
'creation'
],
[[
'STATUS'
],
'integer'
,
'default'
,
'value'
=>
1
],
[[
'START_TIME'
,
'END_TIME'
],
'date'
,
'format'
=>
'Y-M-d H:m:s'
,
'message'
=>
"时间格式为Y-m-d H:i:s"
],
[[
'HEAD_PIC_URL'
,
'FOOT_PIC_URL'
],
'string'
],
[[
'GUID'
,
'ORG_GUID'
],
'string'
,
'max'
=>
50
],
[[
'NAME'
],
'string'
,
'max'
=>
255
],
[[
'GUID'
],
'unique'
,
'on'
=>
'creation'
],
];
}
/**
* {@inheritdoc}
*/
public
function
attributeLabels
()
{
return
[
'GUID'
=>
'Guid'
,
'ORG_GUID'
=>
'组织机构号'
,
'NAME'
=>
'版式名称'
,
'STATUS'
=>
'状态'
,
'START_TIME'
=>
'生效开始时间'
,
'END_TIME'
=>
'生效结束时间'
,
'HEAD_PIC_URL'
=>
'顶部内容'
,
'FOOT_PIC_URL'
=>
'底部内容'
,
];
}
/**
* {@inheritdoc}
*/
public
function
fields
()
{
$fields
=
parent
::
fields
();
$fields
[
'START_TIME'
]
=
function
()
{
return
date
(
'Y-m-d H:i:s'
,
$this
->
START_TIME
);
};
$fields
[
'END_TIME'
]
=
function
()
{
return
date
(
'Y-m-d H:i:s'
,
$this
->
END_TIME
);
};
return
$fields
;
}
/**
* {@inheritdoc}
*/
public
function
extraFields
()
{
return
[
'NUM'
,
];
}
/**
* 商品详情页模板列表
* @param array $params 搜索所需参数
* @return array|null 返回查询列表
*/
public
function
goodsDetailList
(
$params
)
{
$query
=
static
::
find
()
->
alias
(
'sgds'
)
->
select
(
'sgds.GUID,sgds.NAME,sgds.STATUS,sgds.START_TIME,sgds.END_TIME,count(sg.GUID) as NUM'
)
->
leftJoin
(
'shop_goods sg'
,
'sg.DETAIL_SETTING_GUID=sgds.GUID'
)
->
groupBy
(
'sgds.GUID'
);
if
(
isset
(
$params
[
'NAME'
]))
{
$query
->
andFilterWhere
([
'like'
,
'sgds.NAME'
,
$params
[
'NAME'
]]);
}
if
(
isset
(
$params
[
'STATUS'
]))
{
$query
->
andFilterWhere
([
'sgds.STATUS'
=>
$params
[
'STATUS'
]]);
}
if
(
isset
(
$params
[
'START_TIME'
]))
{
$query
->
andFilterWhere
([
'>='
,
'sgds.START_TIME'
,
strtotime
(
$params
[
'START_TIME'
])]);
}
if
(
isset
(
$params
[
'END_TIME'
]))
{
$query
->
andFilterWhere
([
'<='
,
'sgds.END_TIME'
,
strtotime
(
$params
[
'END_TIME'
])]);
}
$dataProvider
=
new
ActiveDataProvider
([
'query'
=>
$query
,
'pagination'
=>
[
'pageSize'
=>
PAGE_SIZE
,
],
'sort'
=>
[
'attributes'
=>
[
'START_TIME'
=>
SORT_ASC
,
]
]
]);
$list
=
[];
foreach
(
$dataProvider
->
getModels
()
as
$request
)
{
$list
[]
=
$request
->
toArray
([],
[
'NUM'
]);
}
$dataProvider
->
setModels
(
$list
);
return
$dataProvider
;
}
/**
* 模板详情
* @param string $guid 模板GUID
* @return array|null
*/
public
function
details
(
$guid
)
{
$query
=
static
::
find
()
->
alias
(
'sgds'
)
->
select
(
'sgds.GUID,sgds.NAME,sgds.STATUS,sgds.START_TIME,sgds.END_TIME,count(sg.GUID) as NUM,sgds.HEAD_PIC_URL,sgds.FOOT_PIC_URL'
)
->
leftJoin
(
'shop_goods sg'
,
'sg.DETAIL_SETTING_GUID=sgds.GUID'
)
->
groupBy
(
'sgds.GUID'
)
->
where
([
'sgds.GUID'
=>
$guid
])
->
one
();
$query
->
toArray
([],
[
'NUM'
]);
return
$query
;
}
}
backend/models/v1/transport/ShopPackagingcostsBranches.php
View file @
a630d76e
...
...
@@ -17,8 +17,6 @@ use Yii;
*/
class
ShopPackagingcostsBranches
extends
\app\models\v1\BaseModel
{
public
$CODE
;
//门店编码
public
$NAME
;
//门店名称
/**
* {@inheritdoc}
*/
...
...
@@ -56,16 +54,6 @@ class ShopPackagingcostsBranches extends \app\models\v1\BaseModel
];
}
/**
* {@inheritdoc}
*/
public
function
extraFields
()
{
return
[
'CODE'
,
//门店编码
'NAME'
,
//门店名称
];
}
/**
* 获取指定省级
*
...
...
@@ -79,12 +67,9 @@ class ShopPackagingcostsBranches extends \app\models\v1\BaseModel
->
leftJoin
(
'SHOP_BRANCH sb'
,
's.BRANCH_GUID=sb.GUID'
)
->
where
([
's.ACTIVITY_TYPE'
=>
'TRANSPORTFEE'
,
's.ACTIVITY_GUID'
=>
$guid
])
->
orderBy
([
's.GUID'
=>
SORT_ASC
])
->
asArray
()
->
all
();
$list
=
[];
foreach
(
$query
as
$request
)
{
$list
[]
=
$request
->
toArray
([],
[
'CODE'
,
'NAME'
]);
}
return
$list
;
return
$query
;
}
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment