You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zhishifufei_php/application/admin/controller/ump/SpecialBatch.php

176 lines
6.2 KiB

10 months ago
<?php
// +----------------------------------------------------------------------
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
// +----------------------------------------------------------------------
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
// +----------------------------------------------------------------------
namespace app\admin\controller\ump;
use app\admin\controller\AuthController;
use app\admin\model\ump\SpecialExchange;
use app\admin\model\ump\SpecialBatch as SpecialBatchModel;
use service\JsonService as Json;
use app\admin\model\special\Special;
/**
* 专题兑换码管理控制器
* Class SpecialBatch
* @package app\admin\controller\ump
*/
class SpecialBatch extends AuthController
{
public function index()
{
$list = Special::PreWhere()->field('id,title')->select();
$this->assign(['activity_type' => 1, 'special' => $list]);
return $this->fetch('batch_index');
}
public function specialList()
{
$list = Special::PreWhere()->field('id,title')->select();
return Json::successful($list);
}
public function batch_list()
{
$where = parent::getMore([
['start_time', ''],
['end_time', ''],
['title', ''],
['special_id', 0],
['page', 1],
['limit', 20]
]);
$batch_list = SpecialBatchModel::getBatchList($where);
return Json::successlayui($batch_list);
}
public function add_batch()
{
return $this->fetch();
}
public function save_batch()
{
$data = parent::postMore([
['title', ''],
['special_id', 0],
['total_num', 1],
['status', 0],
['remark', '']
]);
if (!isset($data['special_id']) || $data['special_id'] <= 0 || !is_numeric($data['special_id'])) return Json::fail('请选择专题');
if (!isset($data['total_num']) || $data['total_num'] <= 0 || !is_numeric($data['total_num'])) return Json::fail('制卡未填写或不合法');
if ($data['total_num'] > 6000) return Json::fail('单次制卡数量最高不得超过6000张');
try {
SpecialBatchModel::beginTrans();
$special_id = $data['special_id'];
$data['add_time'] = time();
$batch_id = SpecialBatchModel::addBatch($data);
$batch_card = SpecialExchange::addCard($batch_id, $data['total_num'], $special_id);
if ($batch_id && $batch_card) {
$qrcodeUrl = SpecialExchange::qrcodes_url($special_id, 5);
SpecialBatchModel::where('id', $batch_id)->update(['qrcode' => $qrcodeUrl]);
}
SpecialBatchModel::commitTrans();
return Json::successful('添加成功');
} catch (\Exception $e) {
SpecialBatchModel::rollbackTrans();
return Json::fail('添加失败');
}
}
/**
* 快速编辑
* @param string $field 字段名
* @param int $id 修改的主键
* @param string value 修改后的值
* @return json
*/
public function set_value($field, $id, $value, $model_type)
{
if ($model_type == 'special_batch' && $field != 'remark') {
$use = SpecialExchange::where('card_batch_id', $id)->where('use_uid', '>', 0)->count();
if ($use) return Json::fail('此批次卡片已经在使用当中,无法进行此非法操作');
}
if ($model_type == 'special_exchange' && $id) {
$card = SpecialExchange::where(['id' => $id, 'use_uid' => ['>', 0]])->find();
if ($card) return Json::fail('此卡片已经在使用当中,无法进行此非法操作');
}
$res1 = true;
if ($model_type == 'special_batch') {
$res = SpecialBatchModel::saveFieldByWhere(['id' => $id], [$field => $value]);
if ($res && $field == 'status') {
$res1 = SpecialExchange::saveFieldByWhere(['card_batch_id' => $id], [$field => $value]);
}
} else {
$res = SpecialExchange::saveFieldByWhere(['id' => $id], [$field => $value]);
}
if ($res && $res1)
return Json::successful('保存成功');
else
return Json::fail('保存失败');
}
/**兑换码列表
* @return mixed
*/
public function card_index()
{
$data = parent::getMore([
['activity_type', 2],
['card_batch_id', 0],
]);
$batch_list = SpecialBatchModel::getBatchAll([]);
$this->assign([
'activity_type' => $data['activity_type'],
'card_batch_id' => $data['card_batch_id'],
'batch_list' => $batch_list ? $batch_list->toArray() : []
]);
return $this->fetch();
}
/**
* 获取兑换码
*/
public function card_list()
{
$card_batch_id = $this->request->param('card_batch_id', 0);
$excel = $this->request->param('excel', 0);
$where = parent::getMore([
['start_time', ''],
['end_time', ''],
['exchange_code', ''],
['phone', ''],
['card_batch_id', 0],
['is_use', ''],
['is_status', ''],
['page', 1],
['limit', 20],
['excel', $excel],
]);
$where['card_batch_id'] = $where['card_batch_id'] > 0 ? $where['card_batch_id'] : $card_batch_id;
$card_list = SpecialExchange::getCardList($where);
return Json::successlayui($card_list);
}
/**删除
* @param int $id
*/
public function delete($id = 0)
{
$res = SpecialBatchModel::delSpecialBatch($id);
if (!$res)
return Json::fail(SpecialBatchModel::getErrorInfo('删除失败,请稍候再试!'));
else
return Json::successful('删除成功!');
}
}