glhcp/server/app/api/logic/ShopFollowLogic.php

83 lines
2.5 KiB
PHP

<?php
namespace app\api\logic;
use app\common\basics\Logic;
use app\common\model\shop\ShopFollow;
use app\common\model\shop\ShopCategory;
use app\common\server\UrlServer;
class ShopFollowLogic extends Logic
{
/**
* 店铺: 关注/取消关注
*/
public static function changeStatus($shopId, $userId)
{
$data = ShopFollow::where(['shop_id'=>$shopId,'user_id'=>$userId])->findOrEmpty();
if($data->isEmpty()) { // 没数据,首次关注
$insertData = [
'shop_id' => $shopId,
'user_id' => $userId,
'status' => 1,
'create_time' => time()
];
$result = ShopFollow::create($insertData);
return [
'result' => $result,
'msg' => '关注成功'
];
}else{ // 关注过,修改关注状态
$newStatus = $data['status'] ? 0 : 1;
$msg = $newStatus ? '关注成功' : '取消关注';
$updateData = [
'id' => $data['id'],
'status' => $newStatus,
'update_time' => time()
];
$result = ShopFollow::update($updateData);
return [
'result' => $result,
'msg' => $msg
];
}
}
public static function lists($get)
{
$where = [
'sf.user_id' => $get['user_id'],
'sf.status' => 1
];
$lists = ShopFollow::alias('sf')
->field('s.id,s.name,s.cid,s.type,s.logo,s.score')
->leftJoin('shop s', 's.id=sf.shop_id')
->where($where)
->order('sf.update_time', 'desc')
->page($get['page_no'], $get['page_size'])
->select()
->toArray();
$count = ShopFollow::alias('sf')->where($where)->count();
$typeDesc = [1=>'官方自营', 2=>'入驻商家'];
foreach($lists as &$item) {
// 商家类型
$item['type_desc'] = $typeDesc[$item['type']];
// 主营类目
$item['cid_desc'] = ShopCategory::where('id', $item['cid'])->value('name');
// logo
$item['logo'] = UrlServer::getFileUrl($item['logo']);
}
$data = [
'lists' => $lists,
'count' => $count,
'more' => is_more($count, $get['page_no'], $get['page_size']),
'page_no' => $get['page_no'],
'page_size' => $get['page_size'],
];
return $data;
}
}