InterestUser.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace app\models\user;
  3. use app\models\article\Article;
  4. use app\models\user\EnterpriseUser as iseUser;
  5. use crmeb\services\SystemConfigService;
  6. use think\facade\Session;
  7. use crmeb\traits\ModelTrait;
  8. use crmeb\basic\BaseModel;
  9. use crmeb\traits\JwtAuthModelTrait;
  10. use think\Model;
  11. class InterestUser extends BaseModel
  12. {
  13. protected $name = 'interest_user';
  14. protected $pk = 'uid';
  15. // 用户关注列表
  16. public function lists($uid, $type)
  17. {
  18. //查询用户关注信息取出被关注企业
  19. $data = self::where('uid', $uid)->select();
  20. if (empty($data)) {
  21. return [];
  22. }
  23. //通过查询到绑定企业id查询出企业信息
  24. $datas = [];
  25. foreach ($data as $key => $value) {
  26. // 查询企业信息
  27. $res = iseUser::where('id', $value['mer_id'])->select();
  28. if (empty($res)) {
  29. return [];
  30. }
  31. $essay = Article::where('mer_id', $value['mer_id'])->count();//获取企业下文章条数
  32. $sort = Article::where('mer_id', $value['mer_id'])->sum('sort');//统计所有文章阅读数
  33. foreach ($res as $k => $v) {
  34. $datas[] = ['id' => $v['id'], 'name' => $v['name'], 'headimg' => $v['headimg'], 'essay' => $essay, 'sort' => $sort,];
  35. }
  36. }
  37. $count = count($datas);
  38. $page = (empty($type['page'])) ? '1' : $type['page'];
  39. $start = ($page - 1) * $type['rows'];
  40. $list = array_slice($datas, $start, $type['rows']);
  41. $lises = ['count' => $count, 'data' => $list];
  42. return $lises;
  43. }
  44. public function mer()
  45. {
  46. return self::hasOne(EnterpriseUser::class, 'id', 'mer_id')->field('id,name,uid,headimg');
  47. }
  48. public function user()
  49. {
  50. return self::hasOne(User::class, 'uid', 'uid')->field('uid,nickname,avatar');
  51. }
  52. public static function getList($where)
  53. {
  54. $data = self::with(['mer', 'user'])->page((int)$where['page'], (int)$where['limit']);
  55. if ($where['mer_id']) $data = $data->where('mer_id', $where['mer_id']);
  56. $data = $data->select();
  57. $count = $data->count();
  58. return compact('count', 'data');
  59. }
  60. public static function remove($id)
  61. {
  62. self::beginTrans();
  63. try {
  64. $info = self::where('id', $id)->find();
  65. if (!$info) {
  66. self::rollbackTrans();
  67. return self::setErrorInfo('no data');
  68. }
  69. $res = self::where('id', $id)->delete() && EnterpriseUser::where('id', $info['mer_id'])->dec('sub', 1)->update();
  70. if ($res) {
  71. self::commitTrans();
  72. return true;
  73. } else {
  74. self::rollbackTrans();
  75. return self::setErrorInfo('fail');
  76. }
  77. } catch (\Exception $e) {
  78. self::rollbackTrans();
  79. return self::setErrorInfo($e->getMessage());
  80. }
  81. }
  82. }