刮刮后端接口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.5 KiB

<?php
namespace app\controller;
use app\BaseController;
use app\logic\Upload;
use app\model\ZoneGoods;
use think\exception\ValidateException;
use think\facade\Request;
class AdminZoneGoods extends BaseController
{
public function saveParam()
{
$param = Request::param();
$content = Request::param('content','','strip_tags');
try {
$id = $param['id'] ?? 0;
$zone_id = $param['zone_id'] ?? 0;
$Zone = new \app\model\Zone();
$ZoneRes = $Zone->find($zone_id);
if (!$ZoneRes) throw new ValidateException('所属专区不存在');
$ZoneGoods = new ZoneGoods();
$rule = [
'zone_id|所属专区id' => 'require|number|max:10',
'title|标题' => 'require|number|max:10',
'price|单价' => 'require|float|max:12',
'cover_image|封面图'=> 'require|max:127',
'bg_image|背景图' => 'require|max:127',
'max_awards_amount|最高中奖金额' => 'max:12',
];
if ($id) {
validate()->rule($rule)->scene('goodsParamEdit')->check($param);
$Save = $ZoneGoods->find($id);
$Save->zone_id = $param['zone_id'];
$Save->title = $param['title'];
$Save->price = $param['price'];
$Save->cover_image = $param['cover_image'];
$Save->bg_image = $param['bg_image'];
if (!empty($param['max_awards_amount'])) $Save->max_awards_amount = $param['max_awards_amount'];
if (!empty($content)) $Save->content = $content;
$Save->update_time = date("Y-m-d H:i:s",time());
$Save->save();
} else {
validate()->rule($rule)->scene('goodsParamAdd')->check($param);
$ZoneGoods->save([
'zone_id' => $zone_id,
'title' => $param['title'],
'max_awards_amount' => $param['max_awards_amount'],
'content' => $content,
'price' => $param['price'],
'cover_image' => $param['cover_image'],
'bg_image' => $param['bg_image'],
'create_time' => date("Y-m-d H:i:s",time())
]);
}
return $this->renderSuccess($id ? '编辑成功' : '添加成功');
} catch (ValidateException $validateException) {
return $this->renderError($validateException->getMessage());
} catch (\Exception $e) {
return $this->renderError('操作失败');
}
}
/**
* 上传轮播图图片
* @return array
*/
public function upload()
{
$file = request()->file();
$param = Request::param();
try {
$rule = [
'image' => [
'fileSize:10240000', // 文件大小不超过10M (10 * 1024 KB)
'fileExt:jpeg,jpg,png,gif'
],
'type' => 'require|in:1,2'
];
validate($rule)->check($file);
$image_path = $param['type'] == 1 ? 'topic' : 'background';
$path = Upload::uploadImage($file['image'],$image_path);
return $this->renderSuccess('上传成功',['path' => $path,'url' => get_image_url($path)]);
} catch (ValidateException $e) {
return $this->renderError($e->getMessage());
}
}
}