Commit a3b91047 authored by twj's avatar twj

EsopPlan

parent 11dfa27c
This diff is collapsed.
...@@ -5,8 +5,10 @@ namespace app\money\admin; ...@@ -5,8 +5,10 @@ namespace app\money\admin;
use app\admin\controller\Admin; use app\admin\controller\Admin;
use app\common\builder\ZBuilder; use app\common\builder\ZBuilder;
use app\money\model\EsopPlan as EsopPlanModel; use app\money\model\EsopPlan as EsopPlanModel;
use app\member\model\Member as MemberModel;
use app\stock\model\StockList as StockListModel;
use think\Db; use think\Db;
use think\Hook; use think\Hook;
use think\Cache; use think\Cache;
/** /**
...@@ -21,108 +23,124 @@ class Esopplan extends Admin ...@@ -21,108 +23,124 @@ class Esopplan extends Admin
*/ */
public function index() public function index()
{ {
cookie('__forward__', $_SERVER['REQUEST_URI']); cookie('__forward__', $_SERVER['REQUEST_URI']);
// 获取查询条件 // 获取查询条件
$map = $this->getMap(); $map = $this->getMap();
$order = $this->getOrder(); $order = $this->getOrder();
empty($order) && $order = 'id desc'; empty($order) && $order = 'id desc';
// 数据列表 // 数据列表
$data_list = EsopPlanModel::getAll($map, $order); $data_list = EsopPlanModel::getAll($map, $order);
// 分页数据 // 分页数据
$page = $data_list->render(); $page = $data_list->render();
if(empty($_SERVER["QUERY_STRING"])){ if (empty($_SERVER["QUERY_STRING"])) {
$excel_url=substr(http().$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"],0,- $excel_url = substr(http() . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"], 0, -5) . "_export";
5)."_export"; } else {
}else{ $excel_url = substr(http() . $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"], 0, -5) . "_export?" . $_SERVER["QUERY_STRING"];
$excel_url=substr(http().$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"],0,-
5)."_export?".$_SERVER["QUERY_STRING"];
} }
$btn_excel = [ $btn_excel = [
'title' => '导出EXCEL表', 'title' => '导出EXCEL表',
'icon' => 'fa fa-fw fa-download', 'icon' => 'fa fa-fw fa-download',
'href' => url($excel_url,'','') 'href' => url($excel_url, '', '')
]; ];
return ZBuilder::make('table') return ZBuilder::make('table')
->setSearch(['mid'=>'用户ID','member.name' => '姓名', 'member.mobile' => '手机号']) // 设置搜索框 ->setSearch(['mid' => '用户ID', 'member.name' => '姓名', 'member.mobile' => '手机号']) // 设置搜索框
->addColumns([ // 批量添加数据列 ->addColumns([ // 批量添加数据列
['id', 'ID'], ['id', 'ID'],
['mobile', '手机号'], ['mobile', '手机号'],
['name', '姓名'], ['name', '姓名'],
['title','股票'], ['title', '股票'],
['account', '可用期权'], ['account', '可用期权'],
['plan_account', '期权总值'], ['plan_account', '期权总值'],
['remain_account', '待释放'], ['remain_account', '待释放'],
['release_account', '已释放'], ['release_account', '已释放'],
['duration','总释放天数'], ['duration', '总释放天数'],
['days', '已释放天数'], ['days', '已释放天数'],
['release_time','开始释放时间'], ['release_time', '开始释放时间'],
['create_time', '创建时间'], ['create_time', '创建时间'],
['status', '状态', 'switch'], ['status', '状态', 'switch'],
]) ])
->hideCheckbox() ->hideCheckbox()
->setTableName('plan') ->setTableName('esop_plan')
->addTopButton('custem',$btn_excel) ->addTopButton('custem', $btn_excel)
->addRightButtons(['edit']) // 批量添加右侧按钮 ->addTopButtons('add')
->addRightButton('edit')
->addRightButton('delete')
->addOrder('id,create_time,release_time') ->addOrder('id,create_time,release_time')
->setRowList($data_list) ->setRowList($data_list)
->fetch(); // 渲染模板 ->fetch(); // 渲染模板
} }
/**
public function index_export(){ * 新增
// 获取查询条件 * @return mixed
$map = $this->getMap(); */
$order = $this->getOrder(); public function add()
empty($order) && $order = 'id desc';
// 数据列表
$xlsData = EsopPlanModel::getAll($map, $order);
$title="期权计划列表";
$arrHeader = array('ID','手机号','姓名','股票','可用期权','期权总值','待释放', '已释放','总释放天数', '已释放天数','开始释放时间', '创建时间', '状态');
$fields = array('id','mobile','name','title','account','plan_account','remain_account','release_account','duration','days','release_time','create_time','status');
export($arrHeader,$fields,$xlsData,$title);
}
public function quickEdit($record = [])
{ {
$id = input('post.pk', ''); // 保存数据
$field = input('post.name', ''); if ($this->request->isPost()) {
$value = input('post.value', ''); $data = $this->request->post();
$table = input('post.table', ''); $data['create_time'] = time();
$type = input('post.type', ''); $data['plan_account'] = $data['plan_account'] * 100;
if(in_array($field, array('account', 'plan_account','remain_account','release_account')) ){ //业务逻辑处理
$value *= 100; $result_up = Db::name("esop_plan")->insert($data);
if ($result_up === 1) {
$this->success('添加成功', 'index');
} else {
$this->error($result_up);
}
} }
// 使用ZBuilder快速创建表单
$mid = EsopPlanModel::where('id', $id)->value('mid'); return ZBuilder::make('form')
$old_value = EsopPlanModel::where('id', $id)->value($field); ->setPageTitle('新增') // 设置页面标题
$mobile = Db('member')->where('id',$mid)->value('mobile'); ->addFormItems([ // 批量添加表单项
$details = $mobile.' 字段(' . $field . '),原值:('.$old_value.')新值:(' . $value . ')'; ['select:5', 'mid', '请选择用户', '', MemberModel::getMemberList(), '', url('get_mid'), 'mid'],
['select:5', 'stock_id', '请选择股票', '', StockListModel::getStockList(), '', url('get_stock_id'), 'stock_id'],
['number', 'plan_account', '期权总值', '期权总的价值(港元)', '0'],
['number', 'duration', '总释放天数', '总释放天数', '1000'],
['datetime', 'release_time', '开始时间', '从哪天开始释放期权', '', 'YYYY-MM-DD HH:mm:ss'],
])
->fetch();
}
switch ($type) { // 根据所有用户ID
// 日期时间需要转为时间戳 public function get_mid($mid)
case 'release_time': {
$value = strtotime($value); $arr = [];
break; $where['status'] = 1;
// 开关 $where['id'] = $mid;
case 'switch': $data_list = Db::name('member')->where($where)->find();
$value = $value == 'true' ? 1 : 0; if (!is_null($data_list)) {
break; $arr['code'] = '1'; //判断状态
$arr['msg'] = '请求成功'; //回传信息
$result[$data_list['id']] = $data_list['id'];
$arr['list'] = format_linkage($result); //将一维数组转成联动需要的数据格式
} else {
$arr['code'] = '0'; //判断状态
$arr['msg'] = '数据请求失败'; //回传信息
$arr['list'] = []; //将一维数组转成联动需要的数据格式
} }
$pk = Db('esop_plan')->getPk(); return json($arr);
$result = Db('esop_plan')->where($pk, $id)->setField($field, $value); }
// 根据所有股票ID
if (false !== $result) { public function get_stock_id($stock_id)
Cache::clear(); {
// 记录行为日志 $arr = [];
if (!empty($member_mobile)) { $where['status'] = 1;
call_user_func_array('action_log', ['esop_plan_edit', 'esop_plan', $id, UID, $details]); $where['id'] = $stock_id;
} $data_list = Db::name('stock_list')->where($where)->find();
$this->success('操作成功'); if (!is_null($data_list)) {
$arr['code'] = '1'; //判断状态
$arr['msg'] = '请求成功'; //回传信息
$result[$data_list['id']] = $data_list['id'];
$arr['list'] = format_linkage($result); //将一维数组转成联动需要的数据格式
} else { } else {
$this->error('操作失败'); $arr['code'] = '0'; //判断状态
$arr['msg'] = '数据请求失败'; //回传信息
$arr['list'] = []; //将一维数组转成联动需要的数据格式
} }
return json($arr);
} }
} }
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
{ {
$data_list = self::view('esop_plan p', true) $data_list = self::view('esop_plan p', true)
->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left') ->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left')
->view('stock', 'title', 'stock.id=p.stock_id', 'left') ->view('stock_list', 'title', 'stock_list.id=p.stock_id', 'left')
->where($map) ->where($map)
->order($order) ->order($order)
->paginate() ->paginate()
......
...@@ -8,11 +8,35 @@ ...@@ -8,11 +8,35 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | @author menghui // | @author menghui
namespace app\stock\model; namespace app\stock\model;
use think\model; use think\model;
use think\Db; use think\Db;
class StockList extends Model{
class StockList extends Model
{
// 设置当前模型对应的完整数据表名称 // 设置当前模型对应的完整数据表名称
protected $table = '__STOCK_LIST__'; protected $table = '__STOCK_LIST__';
// 自动写入时间戳 // 自动写入时间戳
protected $autoWriteTimestamp = true; protected $autoWriteTimestamp = true;
}
\ No newline at end of file /**
* 获取股票列表(下拉选择时使用)
* @param
* @author 路人甲乙
* @return mixed
*/
public static function getStockList()
{
$list = [];
$where['status'] = 1;
$data_list = Db::name('stock_list')->where($where)->column(true, 'id');
if (!is_null($data_list)) {
foreach ($data_list as $v) {
$list[$v['id']] = $v['title'];
}
} else {
$list = [];
}
return $list;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment