271 lines
8.7 KiB
PHP
271 lines
8.7 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* Author:
|
|
* Date: 2017/3/3
|
|
* Time: 下午4:30
|
|
*/
|
|
|
|
namespace app\backend\modules\goods\controllers;
|
|
|
|
|
|
use app\backend\modules\goods\services\DispatchService;
|
|
use app\common\components\BaseController;
|
|
use app\backend\modules\goods\models\Dispatch;
|
|
use app\backend\modules\goods\models\Area;
|
|
use app\common\helpers\PaginationHelper;
|
|
use app\common\helpers\Url;
|
|
use Setting;
|
|
use app\common\models\goods\GoodsDispatch;
|
|
|
|
class DispatchController extends BaseController
|
|
{
|
|
/**
|
|
* 配送模板列表
|
|
* @return array $item
|
|
*/
|
|
public function index()
|
|
{
|
|
// $shopset = Setting::get('shop');
|
|
// $pageSize = 10;
|
|
// $list = Dispatch::uniacid()->where(['is_plugin' => 0 , 'plugin_id' => 0])->orderBy('display_order', 'desc')->orderBy('id', 'desc')->paginate($pageSize)->toArray();
|
|
// $pager = PaginationHelper::show($list['total'], $list['current_page'], $list['per_page']);
|
|
// return view('goods.dispatch.list', [
|
|
// 'list' => $list,
|
|
// 'pager' => $pager,
|
|
// 'shopset' => $shopset
|
|
// ])->render();
|
|
return view('goods.dispatch.list')->render();
|
|
}
|
|
|
|
public function dispatchData()
|
|
{
|
|
// $shopset = Setting::get('shop');
|
|
$pageSize = 10;
|
|
$list = Dispatch::uniacid()->where(['is_plugin' => 0 , 'plugin_id' => 0])
|
|
->orderBy('display_order', 'desc')
|
|
->orderBy('id', 'desc')
|
|
->paginate($pageSize)->toArray();
|
|
foreach($list['data'] as &$item){
|
|
$item['piece_data'] = unserialize($item['piece_data']);
|
|
$item['weight_data'] = unserialize($item['weight_data']);
|
|
}
|
|
return $this->successJson('ok',$list);
|
|
}
|
|
|
|
public function editSave()
|
|
{
|
|
return view('goods.dispatch.info', [
|
|
'id' => request()->id,
|
|
])->render();
|
|
}
|
|
|
|
/**
|
|
* 配送模板添加
|
|
* @return array $item
|
|
*/
|
|
public function add()
|
|
{
|
|
$dispatchModel = new Dispatch();
|
|
$areas = Area::getProvinces(0);
|
|
|
|
$requestDispatch = request()->dispatch;
|
|
$random = 1;
|
|
|
|
if ($requestDispatch) {
|
|
// dd($requestDispatch);
|
|
$requestDispatch = DispatchService::getDispatch($requestDispatch);
|
|
//将数据赋值到model
|
|
$dispatchModel->setRawAttributes($requestDispatch);
|
|
//其他字段赋值
|
|
$dispatchModel->uniacid = \YunShop::app()->uniacid;
|
|
//字段检测
|
|
$validator = $dispatchModel->validator($dispatchModel->getAttributes());
|
|
if ($validator->fails()) {//检测失败
|
|
$this->errorJson($validator->messages());
|
|
} else {
|
|
//取消其他默认模板
|
|
if($dispatchModel->is_default){
|
|
$defaultModel = Dispatch::getOneByDefault();
|
|
if ($defaultModel) {
|
|
$defaultModel->is_default = 0;
|
|
$defaultModel->save();
|
|
}
|
|
}
|
|
|
|
//dd($dispatchModel);
|
|
//数据保存
|
|
if ($dispatchModel->save()) {
|
|
//显示信息并跳转
|
|
// return $this->message('配送模板创建成功', Url::absoluteWeb('goods.dispatch.edit',['id' => $dispatchModel->id]));
|
|
return $this->successJson('配送模板创建成功');
|
|
} else {
|
|
$this->errorJson('配送模板创建失败');
|
|
}
|
|
}
|
|
}
|
|
$data = [
|
|
'dispatch' => $dispatchModel,
|
|
'parents' => $areas->toArray(),
|
|
'random' => $random,
|
|
];
|
|
return $this->successJson('ok',$data);
|
|
// return view('goods.dispatch.info', [
|
|
// 'dispatch' => $dispatchModel,
|
|
// 'parents' => $areas->toArray(),
|
|
// 'random' => $random,
|
|
// ])->render();
|
|
}
|
|
|
|
/**
|
|
* 配送模板编辑
|
|
* @return array $item
|
|
*/
|
|
public function edit()
|
|
{
|
|
$dispatchModel = Dispatch::find(request()->id);
|
|
if (!$dispatchModel) {
|
|
return $this->errorJson('无此记录或已被删除');
|
|
}
|
|
$dispatchModel->weight_data = unserialize($dispatchModel->weight_data);
|
|
$dispatchModel->piece_data = unserialize($dispatchModel->piece_data);
|
|
if(!$dispatchModel->calculate_type){
|
|
$random = $dispatchModel->weight_data ? count($dispatchModel->weight_data) + 1 : 1;
|
|
}else{
|
|
$random = $dispatchModel->piece_data ? count($dispatchModel->piece_data) + 1 : 1;
|
|
}
|
|
|
|
$areas = Area::getProvinces(0);
|
|
|
|
$requestDispatch = request()->dispatch;
|
|
if ($requestDispatch) {
|
|
|
|
$requestDispatch = DispatchService::getDispatch($requestDispatch);
|
|
//将数据赋值到model
|
|
$dispatchModel->setRawAttributes($requestDispatch);
|
|
//其他字段赋值
|
|
$dispatchModel->uniacid = \YunShop::app()->uniacid;
|
|
|
|
//字段检测
|
|
$validator = $dispatchModel->validator($dispatchModel->getAttributes());
|
|
if ($validator->fails()) {//检测失败
|
|
$this->errorJson($validator->messages());
|
|
} else {
|
|
//取消其他默认模板
|
|
if($dispatchModel->is_default){
|
|
$defaultModel = Dispatch::getOneByDefault();
|
|
|
|
if ($defaultModel && ($defaultModel->id != request()->id) ) {
|
|
$defaultModel->is_default = 0;
|
|
$defaultModel->save();
|
|
}
|
|
}
|
|
|
|
//数据保存
|
|
if ($dispatchModel->save()) {
|
|
//显示信息并跳转
|
|
return $this->successJson('配送模板更新成功');
|
|
} else {
|
|
$this->errorJson('配送模板更新失败');
|
|
}
|
|
}
|
|
}
|
|
|
|
$data = [
|
|
'dispatch' => $dispatchModel,
|
|
'parents' => $areas->toArray(),
|
|
'random' => $random,
|
|
];
|
|
return $this->successJson('ok',$data);
|
|
//dd($dispatchModel);
|
|
// return view('goods.dispatch.info', [
|
|
// 'dispatch' => $dispatchModel,
|
|
// 'parents' => $areas->toArray(),
|
|
// 'random' => $random,
|
|
// ])->render();
|
|
}
|
|
|
|
/**
|
|
* 配送模板删除
|
|
* @return array $item
|
|
*/
|
|
public function delete()
|
|
{
|
|
$dispatch = Dispatch::getOne(request()->id);
|
|
if (!$dispatch) {
|
|
return $this->errorJson('无此配送模板或已经删除');
|
|
}
|
|
$model = Dispatch::find(request()->id);
|
|
if($model->is_default == 1){
|
|
return $this->errorJson('默认模板不支持删除,如果需要删除请先设置其他的模板为默认模板');
|
|
}
|
|
$models= Dispatch::uniacid()->where('is_default',1)->first();
|
|
|
|
if(!$models){
|
|
return $this->errorJson('删除失败,请先添加默认的模板,当删除这个模板后,所有这个配送模板商品会自动选择到默认的配送模板');
|
|
}
|
|
$res = GoodsDispatch::where('dispatch_id',$model->id)->update(['dispatch_id' => $models->id]);
|
|
|
|
if ($model->delete()) {
|
|
return $this->successJson('删除模板成功');
|
|
} else {
|
|
return $this->errorJson('删除模板失败');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 配送模板排序
|
|
* @return array $item
|
|
*/
|
|
public function sort()
|
|
{
|
|
$displayOrders = request()->display_order;
|
|
foreach($displayOrders as $id => $displayOrder){
|
|
$dispatch = Dispatch::find($id);
|
|
$dispatch->display_order = $displayOrder;
|
|
$dispatch->save();
|
|
}
|
|
return $this->successJson('排序成功');
|
|
}
|
|
|
|
/**
|
|
* 配送模板排序
|
|
* @return array $item
|
|
*/
|
|
public function sortV2()
|
|
{
|
|
$id = request()->id;
|
|
$sort = request()->sort;
|
|
|
|
$dispatch = Dispatch::find($id);
|
|
$dispatch->display_order = $sort;
|
|
$dispatch->save();
|
|
|
|
return $this->successJson('排序成功');
|
|
}
|
|
|
|
public function selectCity()
|
|
{
|
|
$citys = Area::getAreasByCity(request()->parent_id);
|
|
|
|
return $this->successJson('ok',$citys->toArray());
|
|
// return view('area.selectcitys', [
|
|
// 'citys' => $citys->toArray()
|
|
// ])->render();
|
|
}
|
|
|
|
public function quickEdit()
|
|
{
|
|
$id = request()->id;
|
|
$type = request()->type;
|
|
$status = request()->status;
|
|
|
|
$result = Dispatch::quickUpdatedDispatch($id,$type,$status);
|
|
|
|
if ($result){
|
|
return $this->successJson('修改成功');
|
|
}else{
|
|
return $this->errorJson('修改失败');
|
|
}
|
|
}
|
|
} |