123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace app\models\user;
- use app\models\article\Article;
- use app\models\user\EnterpriseUser as iseUser;
- use crmeb\services\SystemConfigService;
- use think\facade\Session;
- use crmeb\traits\ModelTrait;
- use crmeb\basic\BaseModel;
- use crmeb\traits\JwtAuthModelTrait;
- use think\Model;
- class InterestUser extends BaseModel
- {
- protected $name = 'interest_user';
- protected $pk = 'uid';
- // 用户关注列表
- public function lists($uid, $type)
- {
- //查询用户关注信息取出被关注企业
- $data = self::where('uid', $uid)->select();
- if (empty($data)) {
- return [];
- }
- //通过查询到绑定企业id查询出企业信息
- $datas = [];
- foreach ($data as $key => $value) {
- // 查询企业信息
- $res = iseUser::where('id', $value['mer_id'])->select();
- if (empty($res)) {
- return [];
- }
- $essay = Article::where('mer_id', $value['mer_id'])->count();//获取企业下文章条数
- $sort = Article::where('mer_id', $value['mer_id'])->sum('sort');//统计所有文章阅读数
- foreach ($res as $k => $v) {
- $datas[] = ['id' => $v['id'], 'name' => $v['name'], 'headimg' => $v['headimg'], 'essay' => $essay, 'sort' => $sort,];
- }
- }
- $count = count($datas);
- $page = (empty($type['page'])) ? '1' : $type['page'];
- $start = ($page - 1) * $type['rows'];
- $list = array_slice($datas, $start, $type['rows']);
- $lises = ['count' => $count, 'data' => $list];
- return $lises;
- }
- public function mer()
- {
- return self::hasOne(EnterpriseUser::class, 'id', 'mer_id')->field('id,name,uid,headimg');
- }
- public function user()
- {
- return self::hasOne(User::class, 'uid', 'uid')->field('uid,nickname,avatar');
- }
- public static function getList($where)
- {
- $data = self::with(['mer', 'user'])->page((int)$where['page'], (int)$where['limit']);
- if ($where['mer_id']) $data = $data->where('mer_id', $where['mer_id']);
- $data = $data->select();
- $count = $data->count();
- return compact('count', 'data');
- }
- public static function remove($id)
- {
- self::beginTrans();
- try {
- $info = self::where('id', $id)->find();
- if (!$info) {
- self::rollbackTrans();
- return self::setErrorInfo('no data');
- }
- $res = self::where('id', $id)->delete() && EnterpriseUser::where('id', $info['mer_id'])->dec('sub', 1)->update();
- if ($res) {
- self::commitTrans();
- return true;
- } else {
- self::rollbackTrans();
- return self::setErrorInfo('fail');
- }
- } catch (\Exception $e) {
- self::rollbackTrans();
- return self::setErrorInfo($e->getMessage());
- }
- }
- }
|