123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- namespace app\admin\controller;
- use think\Exception;
- use think\facade\Cache;
- use think\facade\Db;
- use think\facade\Validate;
- //报表预约处理类
- class ReportReserve extends Base
- {
- //redis队列的key,在ReportReserveHandle脚本中也有定义,要同步修改(轻易不要修改)
- private $key = 'wanyuhengtong_report_reserve';
- //预约记录编码及对应名称
- private $code_reserve_name = [
- 'A' => '退货台账-业务口径',
- 'B' => '库存预警汇总',
- 'C' => '退货明细',
- ];
- //获取预约列表
- public function getList()
- {
- $param = $this->request->only([
- 'code' => '',
- 'start_addtime' => '',
- 'end_addtime' => '',
- 'status' => 0,
- 'applyname' => '',
- 'page' => 1,
- 'size' => 15
- ], 'post', 'trim');
- $where = [];
- if (!empty($param['code'])) $where[] = ['code', '=', $param['code']];
- if (!empty($param['start_addtime']) && !empty($param['end_addtime'])) $where[] = ['addtime', 'between', [$param['start_addtime'], $param['end_addtime']]];
- if (!empty($param['status'])) $where[] = ['status', '=', $param['status']];
- if (!empty($param['applyname'])) $where[] = ['applyname', 'like', '%' . $param['applyname'] . '%'];
- $count = Db::name('report_form_reserve')
- ->where($where)
- ->count('id');
- $list = Db::name('report_form_reserve')
- ->where($where)
- ->order('id')
- ->page($param['page'], $param['size'])
- ->select()
- ->toArray();
- return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
- }
- //添加预约记录
- public function add()
- {
- $param = $this->request->only(['code', 'start_time', 'end_time', 'token', 'remark' => ''], 'post', 'trim');
- $val = Validate::rule([
- 'token' => 'require',
- 'code|报表编码' => 'require|in:A,B,C',
- 'start_time|开始时间' => 'require|date|elt:end_time',
- 'end_time|结束时间' => 'require|date',
- ]);
- if (!$val->check($param)) return error_show(1004, $val->getError());
- $user = GetUserInfo($param['token']);
- Db::startTrans();
- try {
- $insert_id = Db::name('report_form_reserve')
- ->insertGetId([
- 'code' => $param['code'],
- 'name' => $this->code_reserve_name[$param['code']],
- 'start_time' => $param['start_time'],
- 'end_time' => $param['end_time'],
- 'apply_name' => isset($user['data']['nickname']) ? $user['data']['nickname'] : '',
- 'apply_id' => isset($user['data']['id']) ? $user['data']['id'] : '',
- 'status' => 1,
- 'remark' => $param['remark'],
- 'addtime' => date('Y-m-d H:i:s'),
- 'updatetime' => date('Y-m-d H:i:s'),
- ]);
- if (!$insert_id) throw new Exception('预约记录新增失败');
- //lpush 往头部插入元素
- $rs = Cache::store('redis')->handler()->lpush($this->key, $insert_id);
- if (!$rs) throw new Exception('预约记录加入redis队列失败');
- Db::commit();
- return app_show(0, '添加成功');
- } catch (Exception $exception) {
- Db::rollback();
- return error_show(1005, '添加失败,' . $exception->getMessage());
- }
- }
- }
|