getList();
// 循环处理
foreach($list as $key => $createOrderInfo){
try{
echo "
";
echo "开始处理第 {$key} 条数据:
UID-{$createOrderInfo['uid']} 购买的{$createOrderInfo['total']}个 {$createOrderInfo['goods_name']}";
// 模拟下单
$this->imitateCreateOrderOperate($createOrderInfo);
echo "
处理完成 - SUCCESS";
}catch(\Exception $e){
echo "
处理完成 - 处理失败:".$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;
}
}