137 lines
3.7 KiB
PHP
137 lines
3.7 KiB
PHP
<?php
|
||
namespace app\backend\modules\order\controllers;
|
||
|
||
use app\common\components\BaseController;
|
||
use app\common\models\Goods;
|
||
use app\common\models\Member;
|
||
use app\frontend\modules\member\services\MemberCartService;
|
||
use app\frontend\modules\memberCart\MemberCartCollection;
|
||
|
||
/**
|
||
* Common: 模拟下单 模拟用户下单并且支付,数据为真实数据,慎用!!!
|
||
* Author: wu-hui
|
||
* Time: 2023/12/06 9:18
|
||
* Class ImitateCreateOrderController
|
||
* @package app\backend\modules\order\controllers
|
||
*/
|
||
class ImitateCreateOrderController extends BaseController{
|
||
|
||
|
||
|
||
public function useInlet(){
|
||
debug("暂停开发,暂不使用...");
|
||
// 获取要处理的列表
|
||
$list = $this->getList();
|
||
// 循环处理
|
||
foreach($list as $key => $createOrderInfo){
|
||
try{
|
||
echo "<hr />";
|
||
echo "开始处理第 {$key} 条数据:<br />UID-{$createOrderInfo['uid']} 购买的{$createOrderInfo['total']}个 {$createOrderInfo['goods_name']}";
|
||
// 模拟下单
|
||
$this->imitateCreateOrderOperate($createOrderInfo);
|
||
|
||
|
||
|
||
echo "<br />处理完成 - SUCCESS";
|
||
}catch(\Exception $e){
|
||
echo "<br />处理完成 - <span style='color: red;'>处理失败</span>:".$e->getMessage();
|
||
}
|
||
}
|
||
|
||
|
||
debug("数据处理完成");
|
||
}
|
||
// 获取数据列表 - 调试数据
|
||
private function getList(){
|
||
// 获取用户信息
|
||
$userIds = Member::uniacid()->pluck('uid')->toArray();
|
||
// 获取商户信息
|
||
$goodsList = Goods::uniacid()->select(['id','title'])->get()->keyBy('id')->toArray();
|
||
$goodsIds = array_column($goodsList,'id');
|
||
// 生成数据
|
||
$list = [];
|
||
for($i = 1; $i <= 3 ; $i++){
|
||
$currentGoodsId = $goodsIds[array_rand($goodsIds)];
|
||
$currentUid = $userIds[array_rand($userIds)];
|
||
$list[] = [
|
||
'goods_name' => $goodsList[$currentGoodsId]['title'],
|
||
'goods_id' => $currentGoodsId,
|
||
'uid' => $currentUid,
|
||
'total' => rand(1,10),
|
||
'time' => time()
|
||
];
|
||
}
|
||
|
||
return $list;
|
||
}
|
||
|
||
|
||
// 模拟下单 暂停开发,暂不使用
|
||
private function imitateCreateOrderOperate($createOrderInfo){
|
||
|
||
|
||
|
||
// request()->goods = [
|
||
// 'goods_id' => $createOrderInfo['goods_id'],
|
||
// 'total' => $createOrderInfo['total'],
|
||
// 'option_id' => 0,
|
||
// ];
|
||
|
||
|
||
|
||
debug(request()->input());
|
||
//订单组
|
||
|
||
$trade = $this->getMemberCarts()->getTrade(Member::find($createOrderInfo['uid']));
|
||
$trade->generate();
|
||
$orderIds = $trade->orders->pluck('id')->implode(',');
|
||
//生成订单,触发事件
|
||
|
||
|
||
debug(['orderIds'=>$orderIds]);
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @return static
|
||
*/
|
||
private function _getMemberCarts()
|
||
{
|
||
$goods_params = is_array(request()->input('goods')) ? request()->input('goods') : json_decode(request()->input('goods'), true);
|
||
|
||
debug([$goods_params]);
|
||
$memberCarts = collect($goods_params)->map(function ($memberCart) {
|
||
return MemberCartService::newMemberCart($memberCart);
|
||
});
|
||
return $memberCarts;
|
||
}
|
||
|
||
/**
|
||
* @return MemberCartCollection
|
||
* @throws \app\common\exceptions\AppException
|
||
*/
|
||
private function getMemberCarts()
|
||
{
|
||
if (!isset($this->memberCarts)) {
|
||
|
||
$memberCarts = new MemberCartCollection($this->_getMemberCarts());
|
||
$memberCarts->loadRelations();
|
||
$memberCarts->validate();
|
||
$this->memberCarts = $memberCarts;
|
||
}
|
||
|
||
return $this->memberCarts;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|