param('tid'); $data = StoreTryProductModel::where("id={$tid}")->field("is_finish,store_name")->find(); $this->assign('tid', $tid); $this->assign('is_finish', $data['is_finish']); $this->assign('store_name', $data['store_name']); $this->assign('countCombination', StoreTryRecordModel::where("is_del=0 and tid={$tid}")->count()); return $this->fetch(); } /** * 异步获取活动数据 */ public function get_combination_list() { $where = UtilService::getMore([ 'tid', ['page', 1], ['limit', 20], ['uid', ''], ]); $combinationList = StoreTryRecordModel::systemPage($where); if (is_object($combinationList['list'])) $combinationList['list'] = $combinationList['list']->toArray(); $data = $combinationList['list']['data']; foreach ($data as &$value) { $value['add_time'] = date('Y-m-d H:i:s', $value['add_time']); } $count = count($data); return JsonService::successlayui(['data' => $data, 'count' => $count]); } public function save_excel(Request $request) { $where = UtilService::getMore([ 'tid' ]); StoreTryRecordModel::SaveExcel($where); } public function set_check(Request $request) { $param = UtilService::getMore([ 'id', 'is_check' ], $request); if (!$param['id']) return JsonService::fail('参数错误'); $data = StoreTryRecordModel::where("r.id={$param['id']}")->alias('r')->join('store_try_product p', 'r.tid=p.id')->find(); if (!$data) { return JsonService::fail("找不到试用商品"); } if ($data['is_finish']) { return JsonService::fail("试用已经结束,没法再选中奖用户了"); } $count = StoreTryRecordModel::where("tid={$data['tid']} and is_check=1")->count(); if ($param['is_check'] && $count >= $data['quota']) { return JsonService::fail("中奖人数已满,请先减少中奖人员再试"); } StoreTryRecordModel::update([ 'id' => $param['id'], 'is_check' => $param['is_check'] ]); return JsonService::success("修改成功"); } /* * 发送货 * @param int $id * @return html * */ public function order_goods($id = 0) { $list = Express::where('is_show', 1)->order('sort desc')->column('name', 'id'); $this->assign([ 'list' => $list, 'id' => $id ]); return $this->fetch(); } /** * TODO 送货信息提交 * @param Request $request * @param $id */ public function update_delivery($id = 0) { $data = UtilService::postMore([ ['type', 1], ['delivery_name', ''], ['delivery_id', ''], ['sh_delivery_name', ''], ['sh_delivery_id', ''], ], $this->request); switch ((int)$data['type']) { case 1: //发货 $data['delivery_type'] = 'express'; if (!$data['delivery_name']) return JsonService::fail('请选择快递公司'); if (!$data['delivery_id']) return JsonService::fail('请输入快递单号'); $data['status'] = 1; StoreTryRecordModel::edit($data, $id); // event('StoreProductOrderDeliveryGoodsAfter', [$data, $id]); // StoreOrderStatus::setStatus($id, 'delivery_goods', '已发货 快递公司:' . $data['delivery_name'] . ' 快递单号:' . $data['delivery_id']); break; case 2: //送货 $data['delivery_type'] = 'send'; $data['delivery_name'] = $data['sh_delivery_name']; $data['delivery_id'] = $data['sh_delivery_id']; unset($data['sh_delivery_name'], $data['sh_delivery_id']); if (!$data['delivery_name']) return JsonService::fail('请输入送货人姓名'); if (!(int)$data['delivery_id']) return JsonService::fail('请输入送货人电话号码'); else if (!preg_match("/^1[3456789]{1}\d{9}$/", $data['delivery_id'])) return JsonService::fail('请输入正确的送货人电话号码'); $data['status'] = 1; StoreTryRecordModel::edit($data, $id); // event('StoreProductOrderDeliveryAfter', [$data, $id]); // StoreOrderStatus::setStatus($id, 'delivery', '已配送 发货人:' . $data['delivery_name'] . ' 发货人电话:' . $data['delivery_id']); break; case 3: //虚拟发货 $data['delivery_type'] = 'fictitious'; $data['status'] = 1; StoreTryRecordModel::edit($data, $id); // event('StoreProductOrderDeliveryAfter', [$data, $id]); // StoreOrderStatus::setStatus($id, 'delivery_fictitious', '已虚拟发货'); break; default: return JsonService::fail('暂时不支持其他发货类型'); break; } //短信发送 // event('ShortMssageSend', [StoreTryRecordModel::where('id', $id)->value('order_id'), 'Deliver']); return JsonService::successful('修改成功!'); } /** * 修改配送信息 * @param $id * @return mixed|\think\response\Json|void */ public function distribution($id) { if (!$id) return $this->failed('数据不存在'); $product = StoreTryRecordModel::get($id); if (!$product) return JsonService::fail('数据不存在!'); $f = []; // $f[] = Form::input('order_id', '退款单号', $product->getData('order_id'))->disabled(1); if ($product['delivery_type'] == 'send') { $f[] = Form::input('delivery_name', '送货人姓名', $product->getData('delivery_name')); $f[] = Form::input('delivery_id', '送货人电话', $product->getData('delivery_id')); } else if ($product['delivery_type'] == 'express') { $f[] = Form::select('delivery_name', '快递公司', $product->getData('delivery_name'))->setOptions(function () { $list = Express::where('is_show', 1)->column('name', 'id'); $menus = []; foreach ($list as $k => $v) { $menus[] = ['value' => $v, 'label' => $v]; } return $menus; }); $f[] = Form::input('delivery_id', '快递单号', $product->getData('delivery_id')); }else{ $f[] = Form::input('delivery_id', '虚拟发货', '虚拟发货,无法更改'); } $form = Form::make_post_form('配送信息', $f, Url::buildUrl('updateDistribution', array('id' => $id)), 7); $this->assign(compact('form')); return $this->fetch('public/form-builder'); } /** * 修改配送信息 * @param $id */ public function updateDistribution($id) { $data = UtilService::postMore([ 'delivery_name', 'delivery_id', ]); if (!$id) return $this->failed('数据不存在'); $product = StoreTryRecordModel::get($id); if (!$product) return JsonService::fail('数据不存在!'); if ($product['delivery_type'] == 'send') { if (!$data['delivery_name']) return JsonService::fail('请输入送货人姓名'); if (!(int)$data['delivery_id']) return JsonService::fail('请输入送货人电话号码'); else if (!preg_match("/^1[3456789]{1}\d{9}$/", $data['delivery_id'])) return JsonService::fail('请输入正确的送货人电话号码'); } else if ($product['delivery_type'] == 'express') { if (!$data['delivery_name']) return JsonService::fail('请选择快递公司'); if (!$data['delivery_id']) return JsonService::fail('请输入快递单号'); } StoreTryRecordModel::edit($data, $id); // event('StoreProductOrderDistributionAfter', [$data, $id]); // StoreOrderStatus::setStatus($id, 'distribution', '修改发货信息为' . $data['delivery_name'] . '号' . $data['delivery_id']); return JsonService::successful('修改成功!'); } }