作者 谢百川

学长说接口全部挖成

... ... @@ -5,6 +5,7 @@ namespace app\api\controller;
use app\api\model\ArticleType;
use app\api\model\LikeArticle;
use app\api\model\LikeStudent;
use app\api\model\LookArticle;
use app\api\model\School;
use app\api\model\Student;
use app\common\controller\Api;
... ... @@ -23,12 +24,13 @@ class Article extends Api
/**
* 获取大学或学院的文章
* @ApiTitle (获取大学或学院的文章)
* @ApiSummary (获取大学或学院的文章)
* 获取大学或学院或学长的文章
* @ApiTitle (获取大学或学院或学长的文章)
* @ApiSummary (获取大学或学院或学长的文章)
* @ApiMethod (GET)
* @ApiParams (name="university_id", type="integer", required=false, description="大学ID")
* @ApiParams (name="college_id", type="integer", required=false, description="大学ID")
* @ApiParams (name="user_id", type="integer", required=false, description="学长ID")
* @ApiParams (name="page", type="integer", required=true, description="分页码")
* @ApiParams (name="size", type="integer", required=true, description="分页数 默认10")
* @ApiParams (name="type_id", type="integer", required=true, description="文章的分类ID")
... ... @@ -72,8 +74,8 @@ class Article extends Api
*/
public function getArticleList()
{
$userId = $this->auth->id;
$userId = 1;
$myId = $this->auth->id;
$myId = 1;
$universityId = $this->request->param('university_id', 0, 'int');
... ... @@ -86,11 +88,12 @@ class Article extends Api
$page = $this->request->param('page', 1, 'int');
$size = $this->request->param('size', 10, 'int');
$typeId = $this->request->param('type_id', 0, 'int');
$userId = $this->request->param('user_id', 0, 'int');
$where['a.show_switch'] = ['=', 1];
$student = new Student();
$studentInfo = $student->infoByUserIdCanShow($userId);
$studentInfo = $student->infoByUserIdCanShow($myId);
if(!$studentInfo) {
$this->error('您的提交有误');
}
... ... @@ -132,6 +135,10 @@ class Article extends Api
$where['a.article_type_id'] = ['=', $typeId];
}
if($userId) {
$where['a.user_id'] = ['=', $userId];
}
// 获取文章
$article = new ArticleModel();
$articleList = $article->listByWhere($where, $page, $size, $studentInfo['school_id']);
... ... @@ -205,6 +212,22 @@ class Article extends Api
$this->error('您的提交有误');
}
// 记录浏览
$lookArticle = new LookArticle();
$lookArticleInfo = $lookArticle->infoById($userId, $articleId);
if($lookArticleInfo) {
$updateData = ['updatetime' => time()];
$lookArticle->updateOne($lookArticleInfo['id'], $updateData);
} else {
$insertData = [
'user_id' => $userId,
'article_id' => $articleId,
'createtime' => time(),
'updatetime' => time(),
];
$lookArticle->addOne($insertData);
}
$likeArticle = new LikeArticle();
$likeArticleInfo = $likeArticle->infoById($userId, $articleId);
if(!$likeArticleInfo) {
... ... @@ -267,4 +290,290 @@ class Article extends Api
}
}
}
/**
* 清空文章浏览记录
* @ApiTitle (清空文章浏览记录)
* @ApiSummary (清空文章浏览记录)
* @ApiMethod (POST)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ()
*/
public function delLookArticle()
{
$userId = $this->auth->id;
$userId = 1;
$lookArticle = new LookArticle();
$res = $lookArticle->updateSomeByUserId($userId, ['deletetime' => time()]);
if($res) {
$this->success('清空文章浏览记录成功');
} else {
$this->error('清空文章浏览记录失败,请您重试');
}
}
/**
* 获取我收藏的文章
* @ApiTitle (获取我收藏的文章)
* @ApiSummary (获取我收藏的文章)
* @ApiMethod (GET)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="page", type="integer", required=true, description="分页码")
* @ApiParams (name="size", type="integer", required=true, description="分页数")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "获取我收藏的文章成功",
"time": "1586483115",
"data": [
{
"id": 1,
"createtime": 0,
"updatetime": 0,
"article_id": 1(文章ID),
"user_id": 1,
"deletetime": null,
"level": "1",
"nickname": "谢百川(发表人的名字)",
"head_image": "www.a.jpg发表人的头像)",
"school_id": 1,
"subject_ids": "",
"up_id": 1,
"college_id": 1,
"university_id": 1,
"graduated_id": 1,
"starttime": 1286640000,
"endtime": null,
"show_switch": 1,
"email": "1",
"title": "",
"article_type_id": 1,
"show_type": "1",
"des_content": "1(文章的内容)",
"des_images": "",
"weigh": 0,
"is_like_user": 1(发表人1关注 0没关注),
"article_type_name": "经验(文章的类型的名字)"
}
]
})
*/
public function getMyLikeArticle()
{
$userId = $this->auth->id;
$userId = 1;
$page = $this->request->param('page', 0, 'int');
$size = $this->request->param('size', 0, 'int');
$likeArticle = new LikeArticle();
$likeArticleList = $likeArticle->listByUserId($userId, $page, $size);
if(!$likeArticleList) {
$this->success('获取我收藏的文章成功', $likeArticleList);
}
$likeStudent = new LikeStudent();
$likeStudentList = $likeStudent->listAllByUserId($userId);
$likeStudentListObj = [];
foreach ($likeStudentList as $v) {
$likeStudentListObj[$v['userb_id']] = $v;
}
$articleType = new ArticleType();
$articleTypeList = $articleType->listAll();
$articleTypeListObj = [];
foreach ($articleTypeList as $k => $v) {
$articleTypeListObj[$v['id']] = $v;
}
foreach ($likeArticleList as $k => $v) {
if(isset($likeStudentListObj[$v['user_id']])) {
$likeArticleList[$k]['is_like_user'] = 1;
} else {
$likeArticleList[$k]['is_like_user'] = 0;
}
if(isset($articleTypeListObj[$v['article_type_id']])) {
$likeArticleList[$k]['article_type_name'] = $articleTypeListObj[$v['article_type_id']]['name'];
} else {
$likeArticleList[$k]['article_type_name'] = '';
}
}
$this->success('获取我收藏的文章成功', $likeArticleList);
}
/**
* 添加一个文章
* @ApiTitle (添加一个文章)
* @ApiSummary (添加一个文章)
* @ApiMethod (POST)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="title", type="string", required=true, description="标题")
* @ApiParams (name="article_type_id", type="integer", required=true, description="分类ID")
* @ApiParams (name="show_type", type="integer", required=true, description="1仅校友 2全部")
* @ApiParams (name="des_content", type="string", required=true, description="内容")
* @ApiParams (name="des_images", type="string", required=true, description="图片集例:a.jpg,b.jpg")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ()
*/
public function addArticle()
{
$userId = $this->auth->id;
$userId = 2;
$title = $this->request->param('title', '', 'string');
if(!$title) {
$this->error('您的文章标题不能为空');
}
if(mb_strlen($title) > 255) {
$this->error('您的文章标题不能超过255汉字长度');
}
$articleTypeId = $this->request->param('article_type_id', 0, 'int');
if(!$articleTypeId) {
$this->error('请您选择正确的文章类型');
}
$showType = $this->request->param('show_type', 1, 'int');
$desContent = $this->request->param('des_content', '', 'string');
if(!$desContent) {
$this->error('您的文章内容不能为空');
}
$desImages = $this->request->param('des_images', '', 'string');
$imageExtArr = ['jpg', 'jpeg', 'png'];
if($desImages) {
$desImagesArr = explode(',', $desImages);
foreach ($desImagesArr as $k => $v) {
$pathInfo = pathinfo($v);
if(!isset($pathInfo['extension']) || !in_array($pathInfo['extension'], $imageExtArr)) {
$this->error('请选择正确的图片格式');
}
}
}
$student = new Student();
$studentInfo = $student->infoByUserIdCanShow($userId);
if(!$studentInfo) {
$this->error('您的操作有误');
}
if($studentInfo['level'] == 1) {
$this->error('高中生不能发布文章哦');
}
$insertData = [
'title' => $title,
'article_type_id' => $articleTypeId,
'show_type' => $showType,
'des_content' => $desContent,
'des_images' => '',
'user_id' => $userId
];
$article = new ArticleModel();
$res = $article->addOne($insertData);
if(!$res) {
$this->error('您的文章发表失败,您可以重试一下');
} else {
$this->success('您的文章发表成功,请您耐心等待审核');
}
}
/**
* 获取我发布的文章
* @ApiTitle (获取我发布的文章)
* @ApiSummary (获取我发布的文章)
* @ApiMethod (GET)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="page", type="integer", required=true, description="分页码")
* @ApiParams (name="size", type="integer", required=true, description="分页数")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ()
*/
public function getMyArticle()
{
$userId = $this->auth->id;
$userId = 1;
$page = $this->request->param('page', 1, 'int');
$size = $this->request->param('size', 10, 'int');
$article = new ArticleModel();
$articleList = $article->listByUserId($userId, $page, $size);
if(!$articleList) {
$this->success('获取我发布的文章', $articleList);
}
$articleType = new ArticleType();
$articleTypeList = $articleType->listAll();
$articleTypeListObj = [];
foreach ($articleTypeList as $k => $v) {
$articleTypeListObj[$v['id']] = $v;
}
foreach ($articleList as $k => $v) {
if(isset($articleTypeListObj[$v['article_type_id']])) {
$articleList[$k]['article_type_name'] = $articleTypeListObj[$v['article_type_id']]['name'];
} else {
$articleTypeList[$k]['article_type'] = '';
}
}
$this->success('获取我发布的文章', $articleList);
}
/**
* 获取所有文章类型
* @ApiTitle (获取所有文章类型)
* @ApiSummary (获取所有文章类型)
* @ApiMethod (GET)
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "获取所有文章类型成功",
"time": "1586484966",
"data": [
{
"id": 1,
"name": "经验",
"weigh": 0,
"createtime": 0,
"updatetime": 0,
"show_switch": 1,
"deletetime": null
}
]
})
*/
public function getArticleType()
{
$articleType = new ArticleType();
$articleTypeList = $articleType->listAll();
$this->success('获取所有文章类型成功', $articleTypeList);
}
}
\ No newline at end of file
... ...
... ... @@ -4,6 +4,7 @@ namespace app\api\controller;
use app\common\controller\Api;
use app\api\model\Mes as MesModel;
use app\api\model\Student;
/**
* 消息相关
*/
... ... @@ -68,13 +69,123 @@ class Mes extends Api
];
$mes = new MesModel();
$res = $mes->addOne($insertData);
if($res) {
$this->error('留言成功了');
} else {
if(!$res) {
$this->error('留言失败了,请您重试一下');
}
$this->success('留言成功了');
}
/**
* 获取我的所有的留言列表
* @ApiTitle (获取我的所有的留言列表)
* @ApiSummary (获取我的所有的留言列表)
* @ApiMethod (GET)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="page", type="integer", required=true, description="")
* @ApiParams (name="size", type="integer", required=true, description="")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "",
"time": "1586503795",
"data": [
{
"id": 3,
"usera_id": 1,
"userb_id": 3,
"createtime": "2020-04-09",
"updatetime": 1586413562,
"des_content": "1",
"readtime": null(用于判断是否已读),
"deletetime": null
},
{
"id": 2,
"usera_id": 1,
"userb_id": 2,
"createtime": "2020-04-09",
"updatetime": 1586413562,
"des_content": "1",
"readtime": null,
"deletetime": null,
"head_image": "www.a.jpg"
}
]
})
*/
public function getMyMes()
{
$userId = $this->auth->id;
$userId = 1;
$page = $this->request->param('page', 1, 'int');
$size = $this->request->param('size', 10, 'int');
$mes = new MesModel();
$mesList = $mes->listByUserId($userId, $page, $size);
$student = new Student();
$newMes = [];
foreach ($mesList as $k => $v) {
$mesInfo = $mes->infoOne($v['usera_id'], $v['userb_id']);
$mesInfo['createtime'] = date('Y-m-d', $mesInfo['createtime']);
if($v['usera_id'] != $userId) {
$studentInfo = $student->infoByUserIdCanShow($v['usera_id']);
}
if($v['userb_id'] != $userId) {
$studentInfo = $student->infoByUserIdCanShow($v['userb_id']);
}
if(isset($studentInfo)) {
$mesInfo['head_image'] = $studentInfo['head_image'];
}
$newMes[] = $mesInfo;
}
$this->success('', $newMes);
}
/**
* 已读消息
* @ApiTitle (已读消息)
* @ApiSummary (已读消息)
* @ApiMethod (POST)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="usera_id", type="integer", required=true, description="发消息的人的ID")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ()
*/
public function isReadMes()
{
$userId = $this->auth->id;
$userId = 1;
$useraId = $this->request->param('usera_id', 0, 'int');
if(!$useraId) {
$this->error('您的操作有误');
}
if($userId == $useraId) {
$this->error('您的操作有误');
}
$mes = new MesModel();
$where['usera_id'] = ['=', $useraId];
$where['userb_id'] = ['=', $userId];
$updateData = [
'readtime' => time()
];
$mes->updateByWhere($where, $updateData);
}
}
\ No newline at end of file
... ...
<?php
namespace app\api\controller;
use app\api\model\User as UserModel;
use app\api\model\UserMoneyLog;
use app\api\model\WithdrawLog;
use app\common\controller\Api;
use think\Db;
/**
* 钱相关
*/
class Money extends Api
{
// 无需登录的接口,*表示全部
protected $noNeedLogin = ['*'];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = ['*'];
/**
* 获取学生余额
* @ApiTitle (获取学生余额)
* @ApiSummary (获取学生余额)
* @ApiMethod (GET)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "获取学生余额成功",
"time": "1586487848",
"data": "0.00"
})
*/
public function getStudentMoney()
{
$userId = $this->auth->id;
$userId = 1;
$user = new UserModel();
$userInfo = $user->infoById($userId);
if(!$userInfo) {
$this->error('您的操作有误');
}
$this->success('获取学生余额成功', $userInfo['money']);
}
/**
* 获取账户资金明细
* @ApiTitle (获取账户资金明细)
* @ApiSummary (获取账户资金明细)
* @ApiMethod (GET)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="page", type="integer", required=true, description="分页码")
* @ApiParams (name="size", type="integer", required=true, description="分页数")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "获取账户资金明细成功",
"time": "1586488760",
"data": [
{
"id": 1,
"user_id": 1,
"money": "0.00",
"before": "0.00",
"after": "0.00",
"memo": "测试",
"createtime": "2020-04-10"
}
]
})
*/
public function getMoneyLog()
{
$userId = $this->auth->id;
$userId = 1;
$page = $this->request->param('page', 1, 'int');
$size = $this->request->param('size', 10, 'int');
$userMoneyLog = new UserMoneyLog();
$userMoneyLogList = $userMoneyLog->listByUserId($userId, $page, $size);
foreach ($userMoneyLogList as $k => $v) {
$userMoneyLogList[$k]['createtime'] = date('Y-m-d', $v['createtime']);
}
$this->success('获取账户资金明细成功', $userMoneyLogList);
}
/**
* 申请提现
* @ApiTitle (申请提现)
* @ApiSummary (申请提现)
* @ApiMethod (POST)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="money", type="integer", required=true, description="提现金额")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 0,
"msg": "您的账户余额不足",
"time": "1586491759",
"data": null
})
*/
public function gotMoney()
{
$userId = $this->auth->id;
$userId = 1;
$money = $this->request->param('money', 0, 'float');
$money = bcmul($money, 1, 2);
if(!$money || bcmul($money, 100, 0) < 1) {
$this->error('您输入的提现金额有误');
}
Db::startTrans();
try {
$user = new UserModel();
$userInfo = $user->infoAndLockById($userId);
if(!$userInfo) {
Db::rollback();
$this->error('您的操作有误');
}
if(bcmul($userInfo['money'], 100, 0) < bcmul($money, 100, 0)) {
Db::rollback();
$this->error('您的账户余额不足');
}
$withdrawLog = new WithdrawLog();
$insertData = [
'user_id' => $userId,
'money' => $money,
'createtime' => time(),
'updatetime' => time(),
];
$res = $withdrawLog->addOne($insertData);
if(!$res) {
Db::rollback();
$this->error('抱歉,系统异常,请您重试或联系客服');
}
$insertData = [
'user_id' => $userId,
'money' => $money,
'memo' => '提现冻结',
'createtime' => time()
];
$userMoneyLog = new UserMoneyLog();
$res = $userMoneyLog->addOne($insertData);
if(!$res) {
Db::rollback();
$this->error('抱歉,系统异常,请您重试或联系客服');
}
$updateData = [
'money' => bcsub($userInfo['money'], $money, 2)
];
$res = $user->updateOne($userId, $updateData);
if(!$res) {
Db::rollback();
$this->error('抱歉,系统异常,请您重试或联系客服');
}
Db::commit();
$this->success('您的账户已经冻结提现金额,请等待平台审核后自动打款到微信零钱');
} catch (\Exception $e) {
Db::rollback();
$this->error($e->getTrace()[0]['args'][0]);
}
}
}
\ No newline at end of file
... ...
... ... @@ -13,6 +13,7 @@ use app\api\model\Subject;
use app\api\model\University as UniversityModel;
use app\api\model\Up;
use app\common\controller\Api;
use app\api\model\User as UserModel;
/**
* 学长相关
... ... @@ -381,104 +382,199 @@ class Student extends Api
}
/**
* 获取学长的文章
* @ApiTitle (获取学长的文章)
* @ApiSummary (获取学长的文章)
* 获取个人信息
* @ApiTitle (获取个人信息)
* @ApiSummary (获取个人信息)
* @ApiMethod (GET)
* @ApiParams (name="user_id", type="integer", required=false, description="学长ID")
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "获取个人信息成功",
"time": "1586483667",
"data": {
"id": 1,
"user_id": 1,
"level": "1",
"nickname": "谢百川",
"head_image": "www.a.jpg",
"school_id": 1,
"subject_ids": "",
"up_id": 1,
"college_id": 1,
"university_id": 1,
"graduated_id": 1,
"createtime": 1586309985,
"updatetime": 1586309985,
"starttime": 1286640000,
"endtime": null,
"deletetime": null,
"show_switch": 1,
"email": "1"
}
})
*/
public function getMyInfo()
{
$userId = $this->auth->id;
$userId = 1;
$student = new StudentModel();
$studentInfo = $student->infoByUserIdCanShow($userId);
if(!$studentInfo) {
$this->error('您的操作有误');
}
$this->success('获取个人信息成功', $studentInfo);
}
/**
* 获取我喜欢的学长
* @ApiTitle (获取我喜欢的学长)
* @ApiSummary (获取我喜欢的学长)
* @ApiMethod (GET)
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
* @ApiParams (name="page", type="integer", required=true, description="分页码")
* @ApiParams (name="size", type="integer", required=true, description="分页数 默认10")
* @ApiParams (name="type_id", type="integer", required=false, description="文章的分类ID")
* @ApiParams (name="size", type="integer", required=true, description="每页数")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
"code": 1,
"msg": "获取大学的文章成功",
"time": "1586403553",
"msg": "获取我喜欢的学长成功",
"time": "1586484363",
"data": [
{
"id": 1,
"createtime": 0,
"updatetime": 0,
"show_switch": 1,
"title": "",
"article_type_id": 1,
"show_type": "1",
"des_content": "1",
"des_images": "",
"weigh": 0,
"user_id": 1,
"usera_id": 1,
"userb_id": 1,
"createtime": 1586309985,
"updatetime": 1586309985,
"deletetime": null,
"article_type_name": "经验"
"user_id": 1,
"level": "1",
"nickname": "谢百川",
"head_image": "www.a.jpg",
"school_id": 1,
"subject_ids": "",
"up_id": 1,
"college_id": 1,
"university_id": 1,
"graduated_id": 1,
"starttime": 1286640000,
"endtime": null,
"show_switch": 1,
"email": "1",
"university_name": "哈哈",
"college_name": "计算机",
"graduated_name": "软件工程",
"up_name": "裸分"
},
{
"id": 2,
"createtime": 0,
"updatetime": 0,
"show_switch": 1,
"title": "",
"article_type_id": 1,
"show_type": "1",
"des_content": "1",
"des_images": "",
"weigh": 0,
"user_id": 1,
"usera_id": 1,
"userb_id": 2,
"createtime": 1586310363,
"updatetime": 1586310363,
"deletetime": null,
"article_type_name": "经验"
"user_id": 2,
"level": "2",
"nickname": "谢百川",
"head_image": "www.a.jpg",
"school_id": 1,
"subject_ids": "1,2,3",
"up_id": 1,
"college_id": 1,
"university_id": 1,
"graduated_id": 1,
"starttime": null,
"endtime": 1286640000,
"show_switch": 1,
"email": "com",
"university_name": "哈哈",
"college_name": "计算机",
"graduated_name": "软件工程",
"up_name": "裸分"
}
]
})
*/
public function getArticleList()
{
$myId = $this->auth->id;
$myId = 1;
public function getMyLikeStudent(){
$userId = $this->auth->id;
$userId = 1;
$page = $this->request->param('page', 1, 'int');
$size = $this->request->param('size', 10, 'int');
$typeId = $this->request->param('type_id', 0, 'int');
$userId = $this->request->param('user_id', 0, 'int');
if(!$userId) {
$this->error('您的提交有误');
$page = $this->request->param('page', 0, 'int');
$size = $this->request->param('size', 0, 'int');
$likeStudent = new LikeStudent();
$likeStudentList = $likeStudent->listByUserId($userId, $page, $size);
if(!$likeStudentList) {
$this->success('获取我喜欢的学长成功', $likeStudentList);
}
$student = new StudentModel();
$studentInfo = $student->infoByUserIdCanShow($userId);
if(!$studentInfo) {
$this->error('您的提交有误');
$university = new UniversityModel();
$universityList = $university->listAll();
$universityListObj = [];
foreach ($universityList as $v) {
$universityListObj[$v['id']] = $v;
}
$myInfo = $student->infoByUserIdCanShow($myId);
if($myInfo['school_id'] == $studentInfo['school_id']) {
$showType = [1, 2];
} else {
$showType = [2];
// 获取所有的学院
$college = new College();
$collegeList = $college->listAll();
$collegeListObj = [];
foreach ($collegeList as $v) {
$collegeListObj[$v['id']] = $v;
}
// 获取文章
$article = new ArticleModel();
if($typeId) {
$articleList = $article->listByUserIdAndShowTypeAndTypeId($page, $size, $userId, $showType, $typeId);
} else {
$articleList = $article->listByUserIdAndShowType($page, $size, $userId, $showType);
// 获取所有的专业
$graduated = new Graduated();
$graduatedList = $graduated->listAll();
$graduatedListObj = [];
foreach($graduatedList as $v) {
$graduatedListObj[$v['id']] = $v;
}
$articleType = new ArticleType();
$articleTypeList = $articleType->listAll();
$articleTypeListObj = [];
foreach ($articleTypeList as $k => $v) {
$articleTypeListObj[$v['id']] = $v;
// 获取所有的升学方式
$up = new Up();
$upList = $up->listAll();
$upListObj = [];
foreach ($upList as $v) {
$upListObj[$v['id']] = $v;
}
foreach ($articleList as $k => $v) {
if(isset($articleTypeListObj[$v['article_type_id']])) {
$articleList[$k]['article_type_name'] = $articleTypeListObj[$v['article_type_id']]['name'];
foreach ($likeStudentList as $k => $v) {
if(isset($universityListObj[$v['university_id']])) {
$likeStudentList[$k]['university_name'] = $universityListObj[$v['university_id']]['name'];
} else {
$likeStudentList[$k]['university_name'] = '';
}
if(isset($collegeListObj[$v['college_id']])) {
$likeStudentList[$k]['college_name'] = $collegeListObj[$v['college_id']]['name'];
} else {
$likeStudentList[$k]['college_name'] = '';
}
if(isset($graduatedListObj[$v['graduated_id']])) {
$likeStudentList[$k]['graduated_name'] = $graduatedListObj[$v['graduated_id']]['name'];
} else {
$likeStudentList[$k]['graduated_name'] = '';
}
if(isset($upListObj[$v['up_id']])) {
$likeStudentList[$k]['up_name'] = $upListObj[$v['up_id']]['name'];
} else {
$articleTypeList[$k]['article_type'] = '';
$likeStudentList[$k]['up_name'] = '';
}
}
$this->success('获取大学的文章成功', $articleList);
$this->success('获取我喜欢的学长成功', $likeStudentList);
}
}
\ No newline at end of file
... ...
... ... @@ -61,4 +61,16 @@ class Article extends Model
{
return $this->where(['id' => ['=', $id], 'show_switch' => ['=', 1]])->useSoftDelete($this->deleteTime)->find();
}
// 添加一个文章
public function addOne($data)
{
return $this->insert($data);
}
// 获取我发布的文章
public function listByUserId($userId, $page, $size)
{
return $this->where(['user_id' => ['=', $userId]])->page($page, $size)->order($this->createTime, 'desc')->select();
}
}
\ No newline at end of file
... ...
... ... @@ -31,4 +31,18 @@ class LikeArticle extends Model
{
return $this->insert($data);
}
// 根据用户ID获取文章
public function listByUserId($userId, $page, $size)
{
return $this
->alias('a')
->join('student b', 'a.user_id = b.user_id')
->join('article c', 'a.article_id = c.id')
->where(['a.user_id' => ['=', $userId]])
->useSoftDelete('a.'.$this->deleteTime)
->page($page, $size)
->order('a.'.$this->createTime, 'desc')
->select();
}
}
\ No newline at end of file
... ...
... ... @@ -25,6 +25,20 @@ class LikeStudent extends Model
}
// 获取用户关注的学长
public function listByUserId($userId, $page, $size)
{
return $this
->alias('a')
->join('student b', 'a.userb_id = b.user_id')
->where(['a.usera_id' => ['=', $userId]])
->useSoftDelete('a.'.$this->deleteTime)
->page($page, $size)
->order('a.'.$this->createTime, 'desc')
->select();
}
// 获取一个
public function infoById($useraId, $userbId)
{
... ...
<?php
namespace app\api\model;
use think\Model;
class LookArticle extends Model
{
protected $name = 'look_article';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
protected $deleteTime = 'deletetime';
// 是否关注文章
public function infoById($userId, $articleId)
{
return $this->where(['user_id' => ['=', $userId], 'article_id' => ['=', $articleId]])->useSoftDelete($this->deleteTime)->find();
}
// 修改一个数据
public function updateOne($id, $data)
{
return $this->where(['id' => ['=', $id]])->update($data);
}
// 添加一个数据
public function addOne($data)
{
return $this->insert($data);
}
// 修改一些数据
public function updateSomeByUserId($userId, $data)
{
return $this->where(['user_id' => ['=', $userId]])->update($data);
}
}
\ No newline at end of file
... ...
... ... @@ -21,4 +21,29 @@ class Mes extends Model
return $this->insert($data);
}
// 获取一个用户的留言列表
public function listByUserId($userId, $page, $size)
{
return $this
->whereor(['usera_id' => ['=', $userId], 'userb_id' => ['=', $userId]])
->useSoftDelete($this->deleteTime)
->order('createtime desc')
->group('usera_id, userb_id')
->page($page, $size)
->select();
}
// 获取最新的一条消息
public function infoOne($useraId, $userbId)
{
return $this->where(['usera_id' => ['=', $useraId], 'userb_id' => ['=', $userbId]])->useSoftDelete($this->deleteTime)->order('createtime desc')->find();
}
// 修改为已读
public function updateByWhere($where, $data)
{
return $this->where($where)->update($data);
}
}
\ No newline at end of file
... ...
<?php
namespace app\api\model;
use think\Model;
class User extends Model
{
protected $name = 'user';
// 定义时间戳字段名
// 获取一个用户的数据
public function infoById($id)
{
return $this->where(['id' => ['=', $id]])->find();
}
// 获取一个用户的数据并加锁
public function infoAndLockById($id)
{
return $this->where(['id' => ['=', $id]])->lock(true)->find();
}
// 修改一条数据
public function updateOne($id, $data)
{
return $this->where(['id' => ['=', $id]])->update($data);
}
}
\ No newline at end of file
... ...
<?php
namespace app\api\model;
use think\Model;
class UserMoneyLog extends Model
{
protected $name = 'user_money_log';
// 定义时间戳字段名
protected $createTime = 'createtime';
public function listByUserId($userId, $page, $size)
{
return $this->where(['user_id' => ['=', $userId]])->page($page, $size)->order($this->createTime, 'desc')->select();
}
// 添加一个记录
public function addOne($data)
{
return $this->insert($data);
}
}
\ No newline at end of file
... ...
<?php
namespace app\api\model;
use think\Model;
class WithdrawLog extends Model
{
protected $name = 'withdraw_log';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
protected $deleteTime = 'deletetime';
// 添加一个提现
public function addOne($data)
{
return $this->insert($data);
}
}
\ No newline at end of file
... ...