Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
my-yaf-project
Project
Project
Details
Activity
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
chenchuanwen
my-yaf-project
Commits
d9fdb9c7
Commit
d9fdb9c7
authored
Nov 07, 2018
by
christ
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into ccw
parents
9345ca48
1f211c82
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
122 additions
and
68 deletions
+122
-68
Store.php
application/controllers/Store.php
+15
-3
StoreService.php
application/models/Business/Store/StoreService.php
+11
-8
MemberCenterService.php
application/models/Business/User/MemberCenterService.php
+52
-53
MemberService.php
application/models/Business/User/MemberService.php
+4
-0
FavoritesStore.php
application/models/DAO/FavoritesStore.php
+36
-4
StoreScoreStatistics.php
application/models/DAO/StoreScoreStatistics.php
+4
-0
No files found.
application/controllers/Store.php
View file @
d9fdb9c7
...
...
@@ -13,9 +13,21 @@ class StoreController extends \Our\Controller_AbstractIndex {
* 获取店铺首页头部
*/
public
function
getStoreInfoAction
(){
$address
=
\Business\User\AddressServiceModel
::
getInstance
()
->
getMyAddress
(
$this
->
req
[
\Our\NameConst
::
data
],
$this
->
memberId
,
false
);
$storeInfo
=
$this
->
storeService
->
getStoreInfo
(
$this
->
req
[
\Our\NameConst
::
data
],
$this
->
memberId
,
$address
);
$storeInfo
[
'share'
]
=
\Business\Common\CommonServiceModel
::
getInstance
()
->
getShareInfo
(
\Our\ApiConst
::
shareStore
,
$this
->
req
[
\Our\NameConst
::
data
][
'storeId'
]);
//获取地址相关信息
$data
=
$this
->
req
[
\Our\NameConst
::
data
];
$addressService
=
\Business\User\AddressServiceModel
::
getInstance
();
$memberId
=
$this
->
sess
->
get
(
'member_id'
);
$currentAddress
=
$addressService
->
setAddress
(
$data
,
$memberId
);
if
(
!
isset
(
$currentAddress
[
'addresses'
])){
$currentAddress
[
'addresses'
]
=
array
();
}
//$returnData['currentAddress'] = $currentAddress;
$address
=
$addressService
->
getMyAddress
(
$data
,
$this
->
memberId
,
false
);
$storeInfo
=
$this
->
storeService
->
getStoreInfo
(
$data
,
$this
->
memberId
,
$address
);
$storeInfo
[
'share'
]
=
\Business\Common\CommonServiceModel
::
getInstance
()
->
getShareInfo
(
\Our\ApiConst
::
shareStore
,
$data
[
'storeId'
]);
$storeInfo
[
'currentAddress'
]
=
$currentAddress
;
$this
->
success
(
$storeInfo
);
}
/**
...
...
application/models/Business/Store/StoreService.php
View file @
d9fdb9c7
...
...
@@ -48,7 +48,12 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeMember
[
'fav_type'
]
=
\Our\ApiConst
::
one
;
$storeMembers
[]
=
$storeMember
;
$favoritesStoreDao
=
\DAO\FavoritesStoreModel
::
getInstance
();
$one
=
$favoritesStoreDao
->
selectList
(
array
(
'store_id'
=>
$storeId
,
'member_id'
=>
$memberId
,
'fav_type'
=>
0
),
'store_id'
);
$one
&&
$storeIds
=
array
(
$one
[
'store_id'
]);
$result
=
$favoritesStoreDao
->
insertAll
(
$storeMembers
);
if
(
$result
)
{
$favoritesStoreDao
->
updateStoreCollecitonsCache
(
$storeIds
,
$memberId
,
2
);
}
$favoritesDao
=
\DAO\FavoritesStoreModel
::
getInstance
();
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$favoritesDao
,
'getOne'
),
array
(),
array
(
$memberId
));
}
else
{
...
...
@@ -361,16 +366,14 @@ class StoreServiceModel extends \Business\AbstractModel{
}
$FavoritesStoreInstance
=
\DAO\FavoritesStoreModel
::
getInstance
();
$return
=
$FavoritesStoreInstance
->
insertOrUpdate
(
array
(
'member_id'
=>
$memberId
,
'store_id'
=>
$storeId
,
'fav_time'
=>
time
()));
$one
=
$FavoritesStoreInstance
->
getOne
(
'store_id'
,
array
(
'store_id'
=>
$storeId
,
'member_id'
=>
$memberId
,
'fav_type'
=>
1
));
if
(
$one
)
{
return
true
;
}
$return
=
$FavoritesStoreInstance
->
insertOrUpdate
(
array
(
'member_id'
=>
$memberId
,
'store_id'
=>
$storeId
,
'fav_time'
=>
time
(),
'fav_type'
=>
1
,
'fav_from'
=>
1
));
if
((
int
)
$return
>
0
){
//更新店铺收藏数
$FavoritesStoreInstance
->
getFavoritesStoreCountByStoreId
(
$storeId
,
1
);
//删除缓存
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$FavoritesStoreInstance
,
'getOne'
),
array
(
'*'
,
array
(
'store_id'
=>
$storeId
,
'member_id'
=>
$memberId
)),
array
(
$memberId
));
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$FavoritesStoreInstance
,
'getList'
),
array
(),
array
(
$memberId
));
//更新个人中心首页数量
\DAO\MemberModel
::
getInstance
()
->
_changeNum
(
\Our\NameConst
::
storeCollection
,
$memberId
);
$FavoritesStoreInstance
->
updateStoreCollecitonsCache
(
array
(
$storeId
),
$memberId
,
2
);
return
true
;
}
}
...
...
application/models/Business/User/MemberCenterService.php
View file @
d9fdb9c7
...
...
@@ -101,38 +101,39 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$memberCenter
[
NameConst
::
goodsCollection
]
=
\DAO\FavoritesModel
::
getInstance
()
->
getFavoritesCountWithCommon
(
null
,
$memberId
);
//足迹数量
$memberCenter
[
NameConst
::
footprint
]
=
\DAO\GoodsBrowseModel
::
getInstance
()
->
getBrowseCount
(
array
(
'member_id'
=>
$memberId
));
$memebrCenterDb1Redis
->
tableHMSet
(
$memberId
,
$memberCenter
);
$memebrCenterDb1Redis
->
tableHMSet
(
$memberId
,
$memberCenter
,
\Our\ApiConst
::
sevenDaySecond
);
}
else
{
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
footprint
)
===
false
){
$memberCenter
[
NameConst
::
footprint
]
=
\DAO\GoodsBrowseModel
::
getInstance
()
->
getBrowseCount
(
array
(
'member_id'
=>
$memberId
));
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
footprint
,
$memberCenter
[
NameConst
::
footprint
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
footprint
,
$memberCenter
[
NameConst
::
footprint
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
goodsCollection
)
===
false
){
$memberCenter
[
NameConst
::
goodsCollection
]
=
\DAO\FavoritesModel
::
getInstance
()
->
getFavoritesCountWithCommon
(
null
,
$memberId
);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
goodsCollection
,
$memberCenter
[
NameConst
::
goodsCollection
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
goodsCollection
,
$memberCenter
[
NameConst
::
goodsCollection
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
waitPay
)
===
false
){
$memberCenter
[
NameConst
::
waitPay
]
=
\DAO\Order\OrderModel
::
getInstance
()
->
getCount
(
array
(
'order_state'
=>
ApiConst
::
orderStateWaitPay
,
'buyer_id'
=>
$memberId
));
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitPay
,
$memberCenter
[
NameConst
::
waitPay
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitPay
,
$memberCenter
[
NameConst
::
waitPay
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
waitShipments
)
===
false
){
$memberCenter
[
NameConst
::
waitShipments
]
=
\DAO\Order\OrderModel
::
getInstance
()
->
getCount
(
array
(
'order_state'
=>
ApiConst
::
orderStateWaitSend
,
'buyer_id'
=>
$memberId
));
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitShipments
,
$memberCenter
[
NameConst
::
waitShipments
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitShipments
,
$memberCenter
[
NameConst
::
waitShipments
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
waitReceiving
)
===
false
){
$memberCenter
[
NameConst
::
waitReceiving
]
=
\DAO\Order\OrderModel
::
getInstance
()
->
getCount
(
array
(
'order_state'
=>
ApiConst
::
orderStateWaitRecieve
,
'buyer_id'
=>
$memberId
));
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitReceiving
,
$memberCenter
[
NameConst
::
waitReceiving
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitReceiving
,
$memberCenter
[
NameConst
::
waitReceiving
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
waitSelfLifting
)
===
false
){
$memberCenter
[
NameConst
::
waitSelfLifting
]
=
\DAO\Order\OrderModel
::
getInstance
()
->
getCount
(
array
(
'order_state'
=>
ApiConst
::
orderStateComplete
,
'buyer_id'
=>
$memberId
,
'evaluation_state'
=>
ApiConst
::
waitEvaluation
));
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitSelfLifting
,
$memberCenter
[
NameConst
::
waitSelfLifting
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitSelfLifting
,
$memberCenter
[
NameConst
::
waitSelfLifting
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
waitEvaluate
)
===
false
){
$memberCenter
[
NameConst
::
waitEvaluate
]
=
\DAO\Order\OrderModel
::
getInstance
()
->
getCount
(
array
(
'order_state'
=>
ApiConst
::
orderStateComplete
,
'buyer_id'
=>
$memberId
,
'evaluation_state'
=>
ApiConst
::
waitEvaluation
));
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitEvaluate
,
$memberCenter
[
NameConst
::
waitEvaluate
]);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
waitEvaluate
,
$memberCenter
[
NameConst
::
waitEvaluate
]
,
\Our\ApiConst
::
sevenDaySecond
);
}
if
(
$memebrCenterDb1Redis
->
tableHExists
(
$memberId
,
NameConst
::
refund
)
===
false
){
$memberCenter
[
NameConst
::
refund
]
=
\DAO\Order\RefundReturnModel
::
getInstance
()
->
getCount
(
'refund_state != '
.
ApiConst
::
refundStateComplete
.
' AND buyer_id = '
.
$memberId
);
$memebrCenterDb1Redis
->
tableHSet
(
$memberId
,
NameConst
::
refund
,
$memberCenter
[
NameConst
::
refund
],
\Our\ApiConst
::
sevenDaySecond
);
}
foreach
(
$memberCenter
as
&
$v
){
$v
=
(
int
)
$v
;
...
...
@@ -150,30 +151,46 @@ class MemberCenterServiceModel extends \Business\AbstractModel
* @throws \Our\Exception
*/
public
function
getStores
(
$param
,
$memberId
){
$pageSize
=
intval
(
$param
[
'pageSize'
]);
$pageIndex
=
intval
(
$param
[
'pageIndex'
]);
if
(
$pageSize
===
0
){
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
commonError
);
}
$pageIndex
=
$pageIndex
+
\Our\ApiConst
::
one
;
$keyword
=
trim
(
$param
[
'keyword'
]);
//
$pageSize = intval($param['pageSize']);
//
$pageIndex = intval($param['pageIndex']);
//
if($pageSize === 0){
//
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
//
}
//
$pageIndex=$pageIndex+\Our\ApiConst::one;
//
$keyword = trim($param['keyword']);
$memberCenter
=
$this
->
getStatistics
(
$memberId
);
$totalCount
=
(
int
)
$memberCenter
[
'storeCollection'
];
$field
=
'evaluation_score,evaluation_number,han_store_score_statistics.store_collect,store_name,store_label,han_store.store_id,favid'
;
$param
[
'keyword'
]
&&
$where
=
"store_name like '%
{
$param
[
'keyword'
]
}
%'"
;
//
$memberCenter = $this->getStatistics($memberId);
//
$totalCount = (int)$memberCenter['storeCollection'];
//
//
$field = 'evaluation_score,evaluation_number,han_store_score_statistics.store_collect,store_name,store_label,han_store.store_id,favid';
//
$param['keyword'] && $where = "store_name like '%{$param['keyword']}%'";
//$list = \DAO\FavoritesStoreModel::getInstance()->getList($where,$field,$pageIndex,$pageSize,$memberId);
$favoritesInstance
=
\DAO\FavoritesStoreModel
::
getInstance
();
$list
=
\Our\RedisHelper
::
cachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$favoritesInstance
,
'getList'
),
array
(
$where
,
$field
,
$pageIndex
,
$pageSize
,
$memberId
),
\Our\ApiConst
::
oneDaySecond
,
array
(
$memberId
));
$stores
=
array
();
if
(
is_array
(
$list
)
&&
!
empty
(
$list
)){
foreach
(
$list
as
$v
){
$v
[
'evaluation_score'
]
?
$grade
=
number_format
((
$v
[
'evaluation_score'
]
/
3
/
$v
[
'evaluation_number'
]),
1
,
'.'
,
''
)
:
$grade
=
'5.0'
;
$stores
[]
=
array
(
'favid'
=>
$v
[
'favid'
],
'storeId'
=>
$v
[
'store_id'
],
'storeLabel'
=>
\DAO\StoreModel
::
getInstance
()
->
getStoreLabelSrc
(
$v
[
'store_label'
],
\Our\ImageConst
::
storeCollectionImg
),
'storeName'
=>
$v
[
'store_name'
],
'grade'
=>
$grade
,
'collectCount'
=>
$favoritesInstance
->
getFavoritesStoreCountByStoreId
(
$v
[
'store_id'
]));
}
}
return
array
(
'stores'
=>
$stores
,
'totalCount'
=>
$totalCount
);
$list
=
$favoritesInstance
->
getFavoritesStores
(
array
(
'member_id'
=>
$memberId
,
'fav_type'
=>
1
),
'fav_from,store_id,favid'
);
$brandsAround
=
[];
$concernedShops
=
[];
$returnStores
=
[];
if
(
$list
)
{
$storeIds
=
array_column
(
$list
,
'store_id'
);
$storeIds
=
implode
(
','
,
$storeIds
);
$where
=
\Our\Common
::
format
(
" store_id in(
{
0
}
)"
,
$storeIds
);
$storeScores
=
\DAO\StoreScoreStatisticsModel
::
getInstance
()
->
getStoreScoreStatistics
(
$where
,
'store_id,evaluation_score,evaluation_number'
);
$list
=
\Our\Common
::
intergrateOneToOne
(
$list
,
$storeScores
,
'store_id'
,
'store_id'
);
$stores
=
\DAO\StoreModel
::
getInstance
()
->
getStores
(
$where
,
'store_id,store_label,store_name'
);
$list
=
\Our\Common
::
intergrateOneToOne
(
$list
,
$stores
,
'store_id'
,
'store_id'
);
foreach
(
$list
as
$v
)
{
$grade
=
isset
(
$v
[
'evaluation_score'
])
?
number_format
((
$v
[
'evaluation_score'
]
/
3
/
$v
[
'evaluation_number'
]),
1
,
'.'
,
''
)
:
'5.0'
;
$tempStore
=
array
(
'favId'
=>
$v
[
'favid'
],
'storeId'
=>
$v
[
'store_id'
],
'storeLabel'
=>
\DAO\StoreModel
::
getInstance
()
->
getStoreLabelSrc
(
$v
[
'store_label'
],
\Our\ImageConst
::
storeCollectionImg
),
'storeName'
=>
$v
[
'store_name'
],
'grade'
=>
$grade
,
'collectCount'
=>
$favoritesInstance
->
getFavoritesStoreCountByStoreId
(
$v
[
'store_id'
]));
if
(
$v
[
'fav_from'
]
==
1
)
{
$concernedShops
[]
=
$tempStore
;
}
elseif
(
$v
[
'fav_from'
]
==
3
){
$brandsAround
[]
=
$tempStore
;
}
$returnStores
[]
=
$tempStore
;
}
}
return
array
(
'concernedShop'
=>
$concernedShops
,
'brandsAround'
=>
$brandsAround
,
'stores'
=>
$returnStores
,
'totalCount'
=>
count
(
$stores
));
}
/**
...
...
@@ -197,7 +214,7 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$list
=
$FavoritesStoreInstance
->
selectList
(
array
(
'store_id'
=>
array
(
'in'
,
$ids
),
'member_id'
=>
$memberId
,
'fav_type'
=>
1
),
'store_id'
);
if
(
$list
)
{
$storeIds
=
array_column
(
$list
,
'store_id'
);
$return
=
$FavoritesStoreInstance
->
update
(
array
(
'fav_type'
=>
0
),
'store_id in ('
.
implode
(
','
,
$ids
)
.
')'
,
true
,
$memberId
);
$return
=
$FavoritesStoreInstance
->
update
(
array
(
'fav_type'
=>
0
,
'fav_from'
=>
0
),
'store_id in ('
.
implode
(
','
,
$ids
)
.
')'
,
true
,
$memberId
);
}
}
else
{
if
(
strpos
(
$ids
,
']'
)
!==
false
)
{
...
...
@@ -205,14 +222,14 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$list
=
$FavoritesStoreInstance
->
selectList
(
array
(
'store_id'
=>
array
(
'in'
,
$ids
),
'member_id'
=>
$memberId
,
'fav_type'
=>
1
),
'store_id'
);
if
(
$list
)
{
$storeIds
=
array_column
(
$list
,
'store_id'
);
$return
=
$FavoritesStoreInstance
->
update
(
array
(
'fav_type'
=>
0
),
'store_id in ('
.
implode
(
','
,
$ids
)
.
')'
,
true
,
$memberId
);
$return
=
$FavoritesStoreInstance
->
update
(
array
(
'fav_type'
=>
0
,
'fav_from'
=>
0
),
'store_id in ('
.
implode
(
','
,
$ids
)
.
')'
,
true
,
$memberId
);
}
}
else
{
$ids
=
intval
(
$ids
);
$one
=
$FavoritesStoreInstance
->
getOne
(
'store_id'
,
array
(
'store_id'
=>
$ids
,
'member_id'
=>
$memberId
,
'fav_type'
=>
1
));
if
(
$one
)
{
$storeIds
=
array
(
$one
[
'store_id'
]);
$return
=
$FavoritesStoreInstance
->
update
(
array
(
'fav_type'
=>
0
),
array
(
'store_id'
=>
$ids
,
'member_id'
=>
$memberId
));
$return
=
$FavoritesStoreInstance
->
update
(
array
(
'fav_type'
=>
0
,
'fav_from'
=>
0
),
array
(
'store_id'
=>
$ids
,
'member_id'
=>
$memberId
));
}
}
...
...
@@ -220,27 +237,9 @@ class MemberCenterServiceModel extends \Business\AbstractModel
if
(
$return
===
false
)
{
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
commonError
);
}
if
((
$return
=
(
int
)
$return
)
>
0
){
//删除缓存
foreach
(
$storeIds
as
$storeId
)
{
//更新店铺收藏数
$FavoritesStoreInstance
->
getFavoritesStoreCountByStoreId
(
$storeId
,
-
1
);
}
if
(
is_array
(
$ids
)
&&
count
(
$ids
)
<=
20
){
foreach
(
$ids
as
$v
){
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$FavoritesStoreInstance
,
'getOne'
),
array
(
'*'
,
array
(
'store_id'
=>
$v
,
'member_id'
=>
$memberId
)),
array
(
$memberId
));
}
}
elseif
(
!
is_array
(
$ids
)){
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$FavoritesStoreInstance
,
'getOne'
),
array
(
'*'
,
array
(
'store_id'
=>
$ids
,
'member_id'
=>
$memberId
)),
array
(
$memberId
));
}
else
{
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$FavoritesStoreInstance
,
'getOne'
),
array
(),
array
(
$memberId
));
}
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$FavoritesStoreInstance
,
'getList'
),
array
(),
array
(
$memberId
));
//更新个人中心首页数量
\DAO\MemberModel
::
getInstance
()
->
_changeNum
(
\Our\NameConst
::
storeCollection
,
$memberId
,
-
$return
);
$FavoritesStoreInstance
->
updateStoreCollecitonsCache
(
$storeIds
,
$memberId
);
return
true
;
}
}
/**
* 关注的商品列表
...
...
application/models/Business/User/MemberService.php
View file @
d9fdb9c7
...
...
@@ -356,11 +356,15 @@ class MemberServiceModel extends \Business\AbstractModel
/*$storeMemberDao = \DAO\StoreMemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $storeMemberDao->addBatch($storeMember);*/
$favoritesStoreDao
=
\DAO\FavoritesStoreModel
::
getInstance
();
$storeIds
=
array_column
(
$scan_store_ids
,
'store_id'
);
$list
=
$favoritesStoreDao
->
selectList
(
array
(
'store_id'
=>
array
(
'in'
,
$storeIds
),
'member_id'
=>
$memberId
,
'fav_type'
=>
0
),
'store_id'
);
$list
&&
$storeIds
=
array_column
(
$list
,
'store_id'
);
$result
=
$favoritesStoreDao
->
insertAll
(
$storeMembers
);
if
(
!
$result
){
\Our\Log
::
getInstance
()
->
write
(
json_encode
(
$storeMembers
)
.
'扫码数据写入失败'
);
return
false
;
}
$favoritesStoreDao
->
updateStoreCollecitonsCache
(
$storeIds
,
$memberId
,
2
);
$favoritesDao
=
\DAO\FavoritesStoreModel
::
getInstance
();
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$favoritesDao
,
'getOne'
),
array
(),
array
(
$memberId
));
}
...
...
application/models/DAO/FavoritesStore.php
View file @
d9fdb9c7
...
...
@@ -27,7 +27,10 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public
function
init
(){
}
public
function
getFavoritesStores
(
$where
,
$field
)
{
$this
->
setDb
(
$this
->
dbName
);
return
$this
->
db
->
select
(
$field
)
->
where
(
$where
)
->
from
(
$this
->
_tableName
)
->
order
(
'fav_time'
,
'DESC'
)
->
fetchAll
();
}
public
function
getList
(
$where
,
$field
,
$pageIndex
,
$pageSize
,
$memberId
){
$this
->
setDb
(
$this
->
dbName
);
return
$this
->
db
->
select
(
$field
)
->
from
(
$this
->
_tableName
)
->
join
(
'han_store'
,
"han_favorites_store.store_id = han_store.store_id"
,
'inner'
)
->
join
(
'han_store_score_statistics'
,
"han_favorites_store.store_id = han_store_score_statistics.store_id"
,
'left'
)
->
where
([
'han_favorites_store.member_id'
=>
$memberId
,
'fav_type'
=>
1
])
->
where
(
$where
)
->
page
(
$pageIndex
,
$pageSize
)
->
order
(
'fav_time'
,
'DESC'
)
->
fetchAll
();
...
...
@@ -108,8 +111,8 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public
function
insertOrUpdate
(
$data
){
$this
->
setDb
(
\Our\DbNameConst
::
masterDBConnectName
);
$baseSql
=
"insert into
{
$this
->
_tableName
}
(member_id,store_id,fav_type,fav_time
) values(
{
0},{1},1,{2
}
) ON DUPLICATE KEY UPDATE fav_type=1,fav_time=VALUES (fav_time
)"
;
$sql
=
\Our\Common
::
format
(
$baseSql
,
$data
[
'member_id'
],
$data
[
'store_id'
],
$data
[
'fav_t
ime
'
]);
$baseSql
=
"insert into
{
$this
->
_tableName
}
(member_id,store_id,fav_type,fav_time
,fav_from) values(
{
0},{1},{2},{3},{4
}
) ON DUPLICATE KEY UPDATE fav_type=VALUES (fav_type),fav_time=VALUES (fav_time),fav_from = VALUES (fav_from
)"
;
$sql
=
\Our\Common
::
format
(
$baseSql
,
$data
[
'member_id'
],
$data
[
'store_id'
],
$data
[
'fav_t
ype'
],
$data
[
'fav_time'
],
$data
[
'fav_from
'
]);
$result
=
$this
->
db
->
insert
(
$this
->
_tableName
)
->
query
(
$sql
);
if
(
$result
){
if
(
$data
&&
(
isset
(
$data
[
'member_id'
])
&&
$data
[
'member_id'
])){
...
...
@@ -176,7 +179,36 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$res
=
$this
->
db
->
insert
(
$this
->
_tableName
)
->
query
(
$sql
);
return
$res
;
}
/**
* @param $storeIds
* @param $memberId
* @param int $type 取消关注:1 关注:2
* @return bool
* @throws \Our\Exception
*/
public
function
updateStoreCollecitonsCache
(
array
$storeIds
,
$memberId
,
$type
=
1
)
{
if
(
!
$storeIds
)
{
return
true
;
}
//删除缓存
foreach
(
$storeIds
as
$storeId
)
{
//更新店铺收藏数
$this
->
getFavoritesStoreCountByStoreId
(
$storeId
,
$type
==
1
?
-
1
:
1
);
}
if
(
is_array
(
$storeIds
)
&&
count
(
$storeIds
)
<=
20
){
foreach
(
$storeIds
as
$v
){
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$this
,
'getOne'
),
array
(
'*'
,
array
(
'store_id'
=>
$v
,
'member_id'
=>
$memberId
)),
array
(
$memberId
));
}
// }elseif (!is_array($storeIds)){
// \Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$this, 'getOne'),array('*',array('store_id'=>$storeIds,'member_id'=>$memberId)),array($memberId));
}
else
{
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$this
,
'getOne'
),
array
(),
array
(
$memberId
));
}
\Our\RedisHelper
::
delCachedFunction
(
\Redis\Db6\FavoritesStoreRedisModel
::
getInstance
(),
array
(
&
$this
,
'getFavoritesStores'
),
array
(),
array
(
$memberId
));
//更新个人中心首页数量
\DAO\MemberModel
::
getInstance
()
->
_changeNum
(
\Our\NameConst
::
storeCollection
,
$memberId
,
$type
==
1
?
-
(
count
(
$storeIds
))
:
count
(
$storeIds
));
return
true
;
}
public
function
getFavoritesStoreCountByStoreId
(
$storeId
,
$num
=
0
)
{
$statisticsDb6Redis
=
\Redis\Db6\StatisticsRedisModel
::
getInstance
();
$collectCount
=
$statisticsDb6Redis
->
tableCacheGet
(
'storeCollectCount:'
.
$storeId
);
...
...
application/models/DAO/StoreScoreStatistics.php
100755 → 100644
View file @
d9fdb9c7
...
...
@@ -28,6 +28,10 @@ class StoreScoreStatisticsModel extends \DAO\AbstractModel {
$this
->
setDb
();
return
$this
->
db
->
select
(
$field
)
->
from
(
$this
->
_tableName
)
->
where
(
$where
)
->
fetchOne
();
}
public
function
getStoreScoreStatistics
(
$where
,
$field
)
{
$this
->
setDb
();
return
$this
->
db
->
select
(
$field
)
->
from
(
$this
->
_tableName
)
->
where
(
$where
)
->
fetchAll
();
}
public
function
insertOrUpdate
(
$data
){
$this
->
setDb
(
\Our\DbNameConst
::
masterDBConnectName
);
$baseSql
=
"insert into
{
$this
->
_tableName
}
(store_id,evaluation_score,evaluation_number) values(
{
0},{1},{2
}
) ON DUPLICATE KEY UPDATE evaluation_number = VALUES(evaluation_number),evaluation_score=VALUES(evaluation_score)"
;
...
...
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