<?php
|
|
namespace app\admin\controller;
|
|
use think\Exception;
|
use think\facade\Config;
|
use think\facade\Db;
|
use think\facade\View;
|
use think\facade\Request;
|
use \app\admin\validate\SalesPlatform as SalesPlatformValidate;
|
|
class SalesPlatform extends Common {
|
|
private $tableName = 'sales_platform';
|
private $viewPath = 'salesPlatform';
|
/**
|
* 销售平台列表
|
* @return string
|
*/
|
public function index() {
|
////////
|
if (!Request::isPost()) {
|
View::assign('viewPath', $this->viewPath);
|
return View::fetch();
|
} else {
|
try {
|
$kw = input('kw');
|
if (!empty($kw)) {
|
$condition[] = array('platform_name', 'like', "%$kw%");
|
}
|
$p = input('p', 1);
|
$other['page_size'] = input('page_size', 20);
|
$order = 'order_id asc,id asc';
|
$count = Db::name($this->tableName)->where($condition)->count();
|
$list = Db::name($this->tableName)->field("*")->where($condition)->withAttr('platform_region_id', function ($value) {
|
// $info['goods_purpose'] = json_decode($info['goods_purpose'], TRUE);
|
return json_decode($value, TRUE);
|
})->order($order)->page($p, $other['page_size'])->select()->toArray();
|
$other['count'] = $count;
|
if (!$list) {
|
$list = [];
|
}
|
$result['other'] = $other;
|
$result['list'] = $list;
|
return $this->successResponse($result);
|
} catch (Exception $exc) {
|
return $this->errorResponse($exc->getMessage());
|
}
|
}
|
}
|
|
/**
|
*保存销售平台
|
*/
|
public function save() {
|
if (!Request::isPost()) {
|
return $this->errorResponse(lang('request_method_incorrect'));
|
}
|
//开始事务
|
Db::startTrans();
|
try {
|
$data = Request::post();
|
$validate = new SalesPlatformValidate();
|
$check_result = $validate->check($data);
|
if (!$check_result) {
|
throw new Exception($validate->getError());
|
}
|
if ($data['platform_region_id']) {
|
$data['platform_region_id'] = json_encode(array_map('intval', $data['platform_region_id']));////将数组中的值转为数字类型/////
|
}
|
$id = input('post.id');
|
if (is_numeric($id)) {
|
//更新数据
|
$update_result = Db::name($this->tableName)->where('id', $id)->withoutField('id')->save($data);
|
if ($update_result === FALSE) {
|
return $this->errorResponse(lang('editing_failed'));
|
}
|
//提交事务
|
Db::commit();
|
return $this->successResponse('修改成功!');
|
} else {
|
//添加数据
|
unset($data['id']);
|
$add_result = Db::name($this->tableName)->insertGetId($data);
|
if (!$add_result) {
|
return $this->errorResponse('添加失败!');
|
}
|
Db::name($this->tableName)->where('id', $add_result)->save(['order_id' => $add_result]);
|
//提交事务
|
Db::commit();
|
return $this->successResponse('添加成功!');
|
}
|
} catch (Exception $exc) {
|
// 回滚事务
|
Db::rollback();
|
return $this->errorResponse($exc->getMessage());
|
}
|
}
|
|
function updateExt() {
|
try {
|
if (!Request::isPost()) {
|
throw new Exception(lang('request_method_incorrect'));
|
}
|
$postField = 'id,is_show';
|
$data = Request::only(explode(',', $postField), 'post');
|
if (!$data['id']) {
|
throw new Exception(lang('parameter_error'));
|
}
|
Db::name($this->tableName)->update($data);
|
$result['message'] = '操作成功';
|
return $this->successResponse($result);
|
} catch (\Exception $exc) {
|
return $this->errorResponse($exc->getMessage());
|
}
|
}
|
|
public function uploadLogo() {
|
|
$logo = input('logo');
|
$id = input('id');
|
|
$ext_arr = array(
|
'image' => array('jpg', 'jpeg', 'png'),
|
);
|
$maxSizeArr = array(
|
'image' => 1024 * 1024 * 10,
|
);
|
$bannersize = Config::get('app.BANNER_SIZE');
|
$width = $bannersize['suolue']['w'];
|
$height = $bannersize['suolue']['h'];
|
$ratio = $bannersize['suolue']['r'];
|
|
$upload = new \common\UploadFile(); // 实例化上传类
|
$upload->uploadReplace = TRUE; //同名文件自动覆盖
|
$upload->autoSub = TRUE; // 启用子目录保存文件
|
$upload->subType = 'date'; // 子目录创建方式 可以使用hash date custom
|
$upload->dateFormat = 'Y/m/d'; //定义 subType=date 后,才需要定义dateFormat
|
$upload->maxSize = 1024 * 1024 * 0; // 设置附件上传大小 10M
|
$upload->maxSizeArr = $maxSizeArr; // 设置附件上传大小 10M
|
$upload->allowExts = $ext_arr; // 设置附件上传类型
|
$upload->savePath = './static/upload/'; // 设置附件上传目录
|
$upload->ratio = $ratio; //1:按比例缩放,2:裁切固定值大小
|
|
$upload->thumb = FALSE; // 使用对上传图片进行缩略图处理
|
//$upload->imageClassPath='LIB.Util.Image'; // 图库类包路径 用于生成缩略图
|
$upload->thumbMaxWidth = $width; // 缩略图最大宽度
|
$upload->thumbMaxHeight = $height; // 缩略图最大高度
|
$upload->thumbRemoveOrigin = FALSE; // 是否移除原图 移除原图时,必须给 thumbPrefix指定一个前缀,否则会将原图误删除
|
|
|
$backinfo = $upload->uploadmore();
|
if (!$backinfo) {// 上传错误提示错误信息
|
return $this->errorResponse($upload->getErrorMsg());
|
} else {
|
$update_info = $upload->getUploadFileInfo();
|
$photo = $update_info['savename'];
|
if (is_numeric($id) && $id > 0) {
|
$info = Db::name($this->tableName)->field('logo')->where('id', $id)->find();
|
if($info){
|
if($info['logo']){
|
delpic($info['logo']);
|
}
|
$update_data['logo'] = $photo;
|
Db::name($this->tableName)->where('id', $id)->update($update_data);//更新数据
|
$this->uploadFileToCos($photo);//上传到cos
|
}
|
else{
|
//数据不存在视为新增数据,删除旧图片
|
if ($logo) {
|
delpic($logo);
|
$this->deleteFileFromCos($logo);//从cos删除文件
|
}
|
}
|
} else {
|
//新增数据,删除旧图片
|
if ($logo) {
|
delpic($logo);
|
$this->deleteFileFromCos($logo);//从cos删除文件
|
}
|
}
|
// 上传成功 获取上传文件信息
|
//上传可同时上传多个,上传方式为一次上传多个
|
$result['logo'] = $photo;
|
$result['message'] = lang('successfully_uploaded');
|
return $this->successResponse($result);
|
}
|
}
|
|
/**
|
* 删除销售平台
|
* @return array|int[]
|
*/
|
public function delete() {
|
if (!Request::isPost()) {
|
return $this->errorResponse(lang('request_method_incorrect'));
|
}
|
//开始事务
|
Db::startTrans();
|
try {
|
$id = input('id');
|
if (!is_numeric($id)) {
|
return $this->errorResponse(lang('parameter_error'));
|
}
|
$condition['id'] = $id;
|
$info = Db::name($this->tableName)->field('id')->where($condition)->find();
|
if (!$info) {
|
return $this->errorResponse(lang('parameter_error'));
|
}
|
Db::name($this->tableName)->where('id', $id)->delete();
|
//提交事务
|
Db::commit();
|
return $this->successResponse('删除成功!');
|
} catch (Exception $exc) {
|
// 回滚事务
|
Db::rollback();
|
return $this->errorResponse($exc->getMessage());
|
}
|
}
|
|
|
public function getPlatformRegion() {
|
////////
|
try {
|
if(!Request::isPost()){
|
throw new Exception(lang('request_method_incorrect'));
|
}
|
$list = Db::name('platform_region')->field("*")->order('order_id,id')->select()->toArray();
|
if (!$list) {
|
$list = [];
|
}
|
$result['list'] = $list;
|
return $this->successResponse($result);
|
} catch (Exception $exc) {
|
return $this->errorResponse($exc->getMessage());
|
}
|
|
}
|
|
}
|