feat: cycle
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Controller\Admin;
|
||||
|
||||
use App\Middleware\Admin\JwtAuthMiddleware;
|
||||
use App\Request\Admin\GoodRequest;
|
||||
use App\Service\Admin\Good\CycleService;
|
||||
use App\Service\Admin\Good\SkuService;
|
||||
use App\Service\Admin\Good\SpuService;
|
||||
use Exception;
|
||||
@@ -82,12 +83,74 @@ class GoodController
|
||||
}
|
||||
|
||||
/**
|
||||
* sku 添加
|
||||
* @param GoodRequest $request
|
||||
* @return array
|
||||
*/
|
||||
#[RequestMapping(path: "add_sku", methods: "POST")]
|
||||
#[Scene(scene: "add_sku")]
|
||||
public function add_sku(GoodRequest $request)
|
||||
public function addSku(GoodRequest $request)
|
||||
{
|
||||
return (new SkuService)->add();
|
||||
}
|
||||
|
||||
/**
|
||||
* sku 修改
|
||||
* @param GoodRequest $request
|
||||
* @return array
|
||||
*/
|
||||
#[RequestMapping(path: "edit_sku", methods: "POST")]
|
||||
#[Scene(scene: "edit_sku")]
|
||||
public function editSku(GoodRequest $request): array
|
||||
{
|
||||
return (new SkuService)->edit();
|
||||
}
|
||||
|
||||
/**
|
||||
* sku 删除
|
||||
* @param GoodRequest $request
|
||||
* @return array
|
||||
*/
|
||||
#[RequestMapping(path: "del_sku", methods: "POST")]
|
||||
#[Scene(scene: "del_sku")]
|
||||
public function delSku(GoodRequest $request): array
|
||||
{
|
||||
return (new SkuService)->del();
|
||||
}
|
||||
|
||||
/**
|
||||
* sku 详情
|
||||
* @param GoodRequest $request
|
||||
* @return array
|
||||
*/
|
||||
#[RequestMapping(path: "sku", methods: "POST")]
|
||||
#[Scene(scene: "sku")]
|
||||
public function sku(GoodRequest $request): array
|
||||
{
|
||||
return (new SkuService)->view();
|
||||
}
|
||||
|
||||
/**
|
||||
* sku 列表
|
||||
* @param GoodRequest $request
|
||||
* @return array
|
||||
*/
|
||||
#[RequestMapping(path: "list_sku", methods: "POST")]
|
||||
#[Scene(scene: "list_sku")]
|
||||
public function skuList(GoodRequest $request): array
|
||||
{
|
||||
return (new SkuService)->handle();
|
||||
}
|
||||
|
||||
/**
|
||||
* cycle 列表
|
||||
* @param GoodRequest $request
|
||||
* @return array
|
||||
*/
|
||||
#[RequestMapping(path: "list_cycle", methods: "POST")]
|
||||
#[Scene(scene: "list_cycle")]
|
||||
public function cycleList(GoodRequest $request): array
|
||||
{
|
||||
return (new CycleService)->handle();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@ use Hyperf\DbConnection\Model\Model;
|
||||
|
||||
/**
|
||||
* @property int $id
|
||||
* @property string $dates
|
||||
* @property int $is_use
|
||||
* @property string $dates
|
||||
* @property string $create_time
|
||||
*/
|
||||
class Cycle extends Model
|
||||
@@ -30,7 +29,7 @@ class Cycle extends Model
|
||||
/**
|
||||
* The attributes that should be cast to native types.
|
||||
*/
|
||||
protected array $casts = ['id' => 'integer', 'is_use' => 'integer'];
|
||||
protected array $casts = ['id' => 'integer'];
|
||||
|
||||
const string CREATED_AT = 'create_time';
|
||||
const null UPDATED_AT = null;
|
||||
|
||||
@@ -31,6 +31,10 @@ class GoodRequest extends FormRequest
|
||||
'saleable' => 'required|integer|in:1,2',
|
||||
'id' => 'required|integer',
|
||||
'cycle_id' => 'required|integer|exists:cycle,id',
|
||||
'spu_id' => 'required|integer|exists:spu,id',
|
||||
'image_ids' => 'required|string',
|
||||
'stock' => 'required|integer',
|
||||
'price' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
40
app/Service/Admin/Good/CycleService.php
Normal file
40
app/Service/Admin/Good/CycleService.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/**
|
||||
* This service file is part of item.
|
||||
*
|
||||
* @author ctexthuang
|
||||
* @contact ctexthuang@qq.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Service\Admin\Good;
|
||||
|
||||
use App\Model\Cycle;
|
||||
use App\Service\Admin\BaseService;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
|
||||
class CycleService extends BaseService
|
||||
{
|
||||
/**
|
||||
* @var Cycle $cycleModel
|
||||
*/
|
||||
#[Inject]
|
||||
protected Cycle $cycleModel;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function handle(): array
|
||||
{
|
||||
$arr = $this->cycleModel->whereBetween('dates',[
|
||||
date('Y-m-d',strtotime('-10 day',time())),
|
||||
date('Y-m-d',strtotime('+10 day',time())),
|
||||
])->orderBy('dates')->get();
|
||||
if (empty($arr)) return $this->return->success('success',['list' => []]);
|
||||
|
||||
$arr = $arr->toArray();
|
||||
|
||||
return $this->return->success('success',['list' => $arr]);
|
||||
}
|
||||
}
|
||||
@@ -27,9 +27,33 @@ class SkuService extends BaseService
|
||||
#[Inject]
|
||||
protected Sku $skuModel;
|
||||
|
||||
public function handle()
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function handle(): array
|
||||
{
|
||||
//todo Write logic
|
||||
$limit = (int)$this->request->input('limit', 10);
|
||||
$spuId = (int)$this->request->input('spu_id');
|
||||
|
||||
$list = $this->skuModel->where('spu_id',$spuId)->paginate($limit)->toArray();
|
||||
|
||||
$imageIdArr = array_column($list['data'],'image_ids');
|
||||
$imageIds = array_unique(explode(',',implode(',',$imageIdArr)));
|
||||
$imageList = $this->getOssObjects($imageIds);
|
||||
|
||||
foreach ($list['data'] as &$item) {
|
||||
$imageOneArr = [];
|
||||
foreach (explode(',',$item['image_ids']) as $imageId) {
|
||||
$imageOneArr[] = [
|
||||
'id' => $imageId,
|
||||
'url' => $imageList[$imageId]['url']
|
||||
];
|
||||
}
|
||||
|
||||
$item['image_list'] = $imageOneArr;
|
||||
}
|
||||
|
||||
return $this->return->success('success', ['list' => $list]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,7 +117,7 @@ class SkuService extends BaseService
|
||||
if ($skuInfo->order_num > 0 && $skuInfo->price != $this->request->input('price')) throw new ErrException('已有订单不可改价,退单后即可操作');
|
||||
else $skuInfo->price = $this->request->input('price');
|
||||
|
||||
$requestOssIds = $this->request->input('oss_ids');
|
||||
$requestOssIds = $this->request->input('image_ids');
|
||||
|
||||
$updateOssIds = array_diff(explode(',',$requestOssIds), explode(',',$skuInfo->image_ids));
|
||||
$delOssIds = array_diff(explode(',',$skuInfo->image_ids), explode(',',$requestOssIds));
|
||||
@@ -113,7 +137,8 @@ class SkuService extends BaseService
|
||||
|
||||
if (!$skuInfo->save()) throw new ErrException('修改失败');
|
||||
|
||||
if ($forceCleanStockCache == 1) return $this->return->success();//todo 修改缓存
|
||||
if ($forceCleanStockCache == 1) return $this->return->success();
|
||||
//todo 修改缓存
|
||||
|
||||
return $this->return->success();
|
||||
}
|
||||
@@ -153,7 +178,7 @@ class SkuService extends BaseService
|
||||
|
||||
$res = $skuInfo->toArray();
|
||||
|
||||
$res['image_list'] = $imageList;
|
||||
$res['image_list'] = array_values($imageList);
|
||||
|
||||
return $this->return->success('success',$res);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user