PostController.php
6.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<?php
namespace api\home\controller;
use cmf\controller\RestBaseController;
use think\Db;
/**
* @title 发布
* @description 发布页面相关接口
*/
class PostController extends RestBaseController
{
/**
* @title 发布
* @description 发布页面
* @author panhaowen
* @url /home/post/index
* @method POST
* @header name:XX-Token require:1 default: desc:token
*/
public function index()
{
$userId=$this->getUserId();
$data=Db::name('post')->where('user_id',$userId)->find();
if (!$data){
$this->error(['code'=>40001,'msg'=>'请填写发布信息']);
}
if ($data['status']==1){
$this->error(['code'=>40002,'msg'=>'请等待审核']);
}elseif ($data['status']==2){
$this->success('您的申请已经通过');
}elseif ($data['status']==3){
$this->error(['code'=>40000,'msg'=>'您的申请未通过'],$data['remark']);
}
}
/**
* @title 技能选择
* @description 技能选择页面
* @author panhaowen
* @url /home/post/skill
* @method POST
* @header name:XX-Token require:1 default: desc:token
*/
public function skill()
{
$data=Db::name('category')->select()->each(function ($item) {
$item['skill'] = Db::name('skill') ->where('category_id',$item['id'])->select();
return $item;
});
$this->success('获取数据成功',$data);
}
/**
* @title 发布提交
* @description 用户发布提交接口
* @author panhaowen
* @url /home/post/postAdd
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:sex type:int require:1 desc:1男,2女
* @param name:weight type:int require:1 desc:体重
* @param name:height type:int require:1 desc:身高
* @param name:skill_id type:int require:1 desc:技能(多个技能用,隔开)
* @param name:job type:varchar require:1 desc:我的职业
* @param name:brief type:varchar require:1 desc:个人简介
* @param name:is_mobile type:int require:1 desc:0不允许通过手机联系,1可以通过手机联系
* @param name:mobile type:int require:0 desc:手机号
* @param name:wx type:varchar require:1 desc:微信二维码
* @param name:is_contact type:int require:1 desc:0不允许非下单以外获取联系方式,1不下单获取联系方式
* @param name:contact_price type:int require:0 desc:联系价格
* @param name:thumbnail type:array require:1 desc:相册
*/
public function postAdd(){
$userId=$this->getUserId();
$param=$this->request->param();
$param['user_id']=$userId;
$param['create_time']=time();
$param['birthday']=strtotime($param['birthday']);
$param['thumbnail']=json_encode(explode(',',$param['thumbnail']));
Db::name('post')->insert($param);
if (Db::name('post')->where(['user_id'=>$userId,'status'=>3])->find()){
Db::name('post')->where(['user_id'=>$userId,'status'=>3])->delete();
}
$this->success('用户发布提交成功');
}
/**
* @title 图片上传接口
* @description
* @author panhaowen
* @url /home/post/postImage
* @method POST
* @param name:image[] type:array require:1 desc:图片资源文件
*/
public function postImage()
{
$file = Request()->file('image');
if (!$file) {
$this->error('上传失败1');
}
// 移动到框架应用根目录/public/upload/ 目录下
$info=[];
foreach ($file as $v) {
$a = $v->move(ROOT_PATH . 'public' . DS . 'upload' . DS . 'image');
$image = cmf_get_image_preview_url('image' . DS . $a->getSaveName()); //返给前台可读取的url路径
array_push($info,$image);
}
if ($info) { // 成功上传后 获取上传信息
// 输出 jpg
// echo $info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
// echo $info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
//echo $info->getFilename();
// $image = cmf_get_image_preview_url('image' . DS . $info->getSaveName()); //返给前台可读取的url路径
$this->success('图片上传成功',$info);
} else {
// 上传失败获取错误信息
$this->error('上传失败2');
}
}
/**
* @title 上传单个文件
* @description 上传单个文件
* @author Tiger Yang
* @url /home/post/one
* @method POST
*
* @header name:XX-Token require:1 default: desc:登录标识
* @header name:XX-Device-Type require:0 default:wxapp desc:设备类型
*
* @param name:file type:file require:1 other: desc:上传文件
*/
public function one()
{
$file = $this->request->file('file');
// 移动到框架应用根目录/public/upload/ 目录下
$info = $file->validate([
/*'size' => 15678,*/
'ext' => 'jpg,png,gif'
]);
$fileMd5 = $info->md5();
$fileSha1 = $info->sha1();
$findFile = Db::name("asset")->where('file_md5', $fileMd5)->where('file_sha1', $fileSha1)->find();
if (!empty($findFile)) {
$this->success("上传成功!", ['url' => cmf_get_asset_url($findFile['file_path']), 'filename' => $findFile['filename']]);
}
$info = $info->move(ROOT_PATH . 'public' . DS . 'upload');
if ($info) {
$saveName = $info->getSaveName();
$originalName = $info->getInfo('name');//name,type,size
$fileSize = $info->getInfo('size');
$suffix = $info->getExtension();
$fileKey = $fileMd5 . md5($fileSha1);
$userId = $this->getUserId();
Db::name('asset')->insert([
'user_id' => $userId,
'file_key' => $fileKey,
'filename' => $originalName,
'file_size' => $fileSize,
'file_path' => cmf_get_asset_url($saveName),
'file_md5' => $fileMd5,
'file_sha1' => $fileSha1,
'create_time' => time(),
'suffix' => $suffix
]);
$storage = cmf_get_option('storage');
if (isset($storage['type'])&&$storage['type']=='Qiniu') {
$this->uploadToQiniu($saveName);
}
$this->success("上传成功!", ['url' => cmf_get_asset_url($saveName), 'filename' => $originalName]);
} else {
// 上传失败获取错误信息
$this->error($file->getError());
}
}
}