123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- <?php
- /**
- * Created by PhpStorm
- * Author: 向往那片天空
- * Date: 2020/6/8
- * Time: 16:21
- * 微信/QQ: 250023777
- * 格言: 抓住中心,宁精勿杂,宁专勿多
- */
- namespace app\admin\controller\ump;
- use app\admin\controller\AuthController;
- use app\admin\model\system\Express;
- use app\Request;
- use crmeb\services\FormBuilder as Form;
- use crmeb\services\JsonService;
- use crmeb\services\UtilService;
- use app\admin\model\ump\StoreTryRecord as StoreTryRecordModel;
- use app\admin\model\ump\StoreTryProduct as StoreTryProductModel;
- use think\facade\Route as Url;
- /**
- * 试用申请记录控制器
- * Class StoreActivityProduct
- * @package app\admin\controller\ump
- */
- class StoreTryRecord extends AuthController
- {
- public function index(Request $request)
- {
- $tid = $request->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('修改成功!');
- }
- }
|