Commit b623adf9 authored by twj's avatar twj

esop_plan后台,twj

parent 303601d0
<?php
namespace app\money\admin;
use app\admin\controller\Admin;
use app\common\builder\ZBuilder;
use app\esop\model\Plan as PlanModel;
use think\Db;
use think\Hook;
use think\Cache;
/**
* 期权计划管理控制器
* @package app\money\admin
*/
class Index extends Admin
{
/**
* 首页
* @return mixed
*/
public function index()
{
cookie('__forward__', $_SERVER['REQUEST_URI']);
// 获取查询条件
$map = $this->getMap();
$order = $this->getOrder();
empty($order) && $order = 'id desc';
// 数据列表
$data_list = PlanModel::getAll($map, $order);
// 分页数据
$page = $data_list->render();
if(empty($_SERVER["QUERY_STRING"])){
$excel_url=substr(http().$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"],0,-
5)."_export";
}else{
$excel_url=substr(http().$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"],0,-
5)."_export?".$_SERVER["QUERY_STRING"];
}
$btn_excel = [
'title' => '导出EXCEL表',
'icon' => 'fa fa-fw fa-download',
'href' => url($excel_url,'','')
];
return ZBuilder::make('table')
->setSearch(['mid'=>'用户ID','member.name' => '姓名', 'member.mobile' => '手机号']) // 设置搜索框
->addColumns([ // 批量添加数据列
['id', 'ID'],
['mobile', '手机号'],
['name', '姓名'],
['title','股票'],
['account', '可用期权'],
['plan_account', '期权总值'],
['remain_account', '待释放'],
['release_account', '已释放'],
['duration','总释放天数'],
['days', '已释放天数'],
['release_time','开始释放时间'],
['create_time', '创建时间'],
['status', '状态', 'switch'],
])
->hideCheckbox()
->setTableName('plan')
->addTopButton('custem',$btn_excel)
->addRightButtons(['edit']) // 批量添加右侧按钮
->addOrder('id,create_time,release_time')
->setRowList($data_list)
->fetch(); // 渲染模板
}
public function index_export(){
// 获取查询条件
$map = $this->getMap();
$order = $this->getOrder();
empty($order) && $order = 'id desc';
// 数据列表
$xlsData = PlanModel::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', '');
$value = input('post.value', '');
$table = input('post.table', '');
$type = input('post.type', '');
if(in_array($field, array('account', 'plan_account','remain_account','release_account')) ){
$value *= 100;
}
$mid = PlanModel::where('id', $id)->value('mid');
$old_value = PlanModel::where('id', $id)->value($field);
$mobile = Db('member')->where('id',$mid)->value('mobile');
$details = $mobile.' 字段(' . $field . '),原值:('.$old_value.')新值:(' . $value . ')';
switch ($type) {
// 日期时间需要转为时间戳
case 'release_time':
$value = strtotime($value);
break;
// 开关
case 'switch':
$value = $value == 'true' ? 1 : 0;
break;
}
$pk = Db('esop_plan')->getPk();
$result = Db('esop_plan')->where($pk, $id)->setField($field, $value);
if (false !== $result) {
Cache::clear();
// 记录行为日志
if (!empty($member_mobile)) {
call_user_func_array('action_log', ['esop_plan_edit', 'esop_plan', $id, UID, $details]);
}
$this->success('操作成功');
} else {
$this->error('操作失败');
}
}
}
\ No newline at end of file
<?php
namespace app\esop\model;
use think\helper\Hash;
use app\money\model\Role as RoleModel;
use think\model;
use think\Db;
class Plan extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = '__ESOP__PLAN__';
public static function getAll($map=[], $order='')
{
$data_list = self::view('esop_plan p', true)
->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left')
->view('stock', 'title', 'stock.id=p.stock_id', 'left')
->where($map)
->order($order)
->paginate()
->each( function($item, $key){
$item->account = money_convert($item->account);
$item->plan_account = money_convert($item->plan_account);
$item->remain_account = money_convert($item->remain_account);
$item->release_account = money_convert($item->release_account);
});
return $data_list;
}
/*
* 释放时自动更新期权计划信息
*
*/
public static function plan_up($id,$mmoney){
return self::where(["id"=>$id])->update($mmoney);
}
}
?>
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