777 lines
30 KiB
PHP
777 lines
30 KiB
PHP
<?php
|
|
|
|
namespace app\adminapi\controller;
|
|
|
|
use app\common\controller\adminApi;
|
|
use think\Controller;
|
|
use think\Db;
|
|
use think\Session;
|
|
|
|
/*
|
|
* 工会
|
|
*/
|
|
class Guild extends adminApi
|
|
{
|
|
protected $noNeedLogin = [];
|
|
protected $noNeedRight = [];
|
|
protected $layout = '';
|
|
protected $table_guild_subsidy_config = 'vs_guild_subsidy_config';
|
|
protected $table_guild_subsidy = 'vs_guild_subsidy';
|
|
protected $table_guild_user = 'vs_guild_user';
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
//移除HTML标签
|
|
$this->request->filter('trim,strip_tags,htmlspecialchars');
|
|
}
|
|
|
|
/*
|
|
* 工会列表
|
|
* @param int $page
|
|
* @param int $page_limit
|
|
* @param string search_id
|
|
* @param string search_name
|
|
* @param string search_stime
|
|
* @param string search_etime
|
|
* @return array
|
|
*/
|
|
public function guild_lists()
|
|
{
|
|
$page = input('page',1);
|
|
$page = $page > 0 ? $page : 1;
|
|
$page_limit = input('page_limit',30);
|
|
$search_id = input('search_id','');
|
|
$search_name = input('search_name','');
|
|
$search_stime = input('search_stime','');
|
|
$search_etime = input('search_etime','');
|
|
$where = [];
|
|
if (!empty($search_id)) {
|
|
$where['guild_special_id'] = $search_id;
|
|
}
|
|
if (!empty($search_name)) {
|
|
$where['guild_name'] = ['like',"%{$search_name}%"];
|
|
}
|
|
// if (!empty($search_stime)) {
|
|
// $where['createtime'] = ['>=',strtotime($search_stime)];
|
|
// }
|
|
// if (!empty($search_etime)) {
|
|
// $where['createtime'] = ['<=',strtotime($search_etime.' 23:59:59')];
|
|
// }
|
|
// if(!empty($search_stime) && !empty($search_etime)){
|
|
// $where['createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime.' 23:59:59')]];
|
|
// }
|
|
$count = db::name('vs_guild')->where($where)->count();
|
|
$data = db::name('vs_guild')->where($where)->page($page,$page_limit)->select();
|
|
$list = [];
|
|
foreach ($data as $k=>$v) {
|
|
$list[$k]['id'] = $v['id'];
|
|
$list[$k]['code_id'] = $v['guild_special_id'];
|
|
$special_num = db::name('vs_user_decorate')->where(['type'=>8,'user_id'=>$v['user_id'],'is_using'=>1])->where('end_time',['>=',time()],'or')->value('special_num');
|
|
if($special_num){
|
|
$list[$k]['guild_special_id'] = $special_num;
|
|
}else{
|
|
$list[$k]['guild_special_id'] = "无";
|
|
}
|
|
$list[$k]['guild_name'] = $v['guild_name'];
|
|
$user = model('User')->getOne(['id'=>$v['user_id']]);
|
|
if(!$user){
|
|
$list[$k]['user_name'] = "无";
|
|
}else{
|
|
$list[$k]['user_name'] = $user['user_code'].'-'.$user['nickname'];
|
|
}
|
|
$list[$k]['guild_logo'] = $v['cover'];
|
|
//当日流水
|
|
$list[$k]['today_money'] = model('Guild')->getTodayMoney($v['id'],$search_stime,$search_etime);
|
|
$list[$k]['is_show'] = $v['is_show'];
|
|
$list[$k]['status'] = $v['status'];
|
|
$list[$k]['status_str'] = $v['status'] == 1 ? '正常' : '解散';
|
|
$list[$k]['createtime'] = date('Y-m-d H:i:s',$v['createtime']);
|
|
$list[$k]['updatetime'] = date('Y-m-d H:i:s',$v['updatetime']);
|
|
$list[$k]['user_id'] = $user['user_code']??"";
|
|
$list[$k]['intro'] = $v['intro'];
|
|
}
|
|
// 数组按today_money 排序
|
|
usort($list, function($a, $b) {
|
|
return $b['today_money'] - $a['today_money'];
|
|
});
|
|
$reslut = [];
|
|
$reslut['page'] = $page;
|
|
$reslut['page_limit'] = $page_limit;
|
|
$reslut['count'] = $count;
|
|
$reslut['list'] = $list;
|
|
return V(1,"成功", $reslut);
|
|
}
|
|
|
|
/**
|
|
* 工会添加
|
|
* @param guild_special_id 靓号 guild_special_id
|
|
* @param user_id 会长ID user_id
|
|
* @param guild_name 工会名称 guild_name
|
|
* @param guild_desc 工会描述 intro
|
|
* @param guild_logo 工会logo cover
|
|
*
|
|
*/
|
|
public function guild_add(){
|
|
if ($this->request->isPost()) {
|
|
$request = $this->request->post();
|
|
if (empty($request['guild_name'])) {
|
|
return V(0, "请填写工会名称");
|
|
}
|
|
$guild = model('Guild')->getOne(['guild_name'=>$request['guild_name'],'delete_time'=>0]);
|
|
if(!empty($guild)) {
|
|
return V(0, "该工会名称已存在");
|
|
}
|
|
if(empty($request['user_id'])) {
|
|
return V(0, "请填写会长用户ID");
|
|
}
|
|
$user = db('user')->where('user_code', $request['user_id'])->find();
|
|
if(empty($user)) {
|
|
return V(0, "会长ID不存在");
|
|
}
|
|
$user_id = $user['id'];
|
|
if(empty($request['guild_logo'])) {
|
|
return V(0, "请上传工会logo");
|
|
}
|
|
$guild_to_usser = model('Guild')->getOne(['user_id'=>$user_id,'delete_time'=>0]);
|
|
if ($guild_to_usser) {
|
|
return V(0, "该会长已创建工会");
|
|
}
|
|
$guild_user = db::name('vs_guild_user')->where('user_id',$user_id)->where('delete_time',0)->find();
|
|
if ($guild_user) {
|
|
return V(0, "该会长已加入其他工会");
|
|
}
|
|
//靓号处理
|
|
if(empty($request['guild_special_id'])){
|
|
$guild_special_id = model('Guild')->getGuildSpecialId();
|
|
}else{
|
|
$vip_code = db::name('vip_code')->where(['type' => 3, 'status' => 1,'is_use' => 1])->where('code', $request['guild_special_id'])->field('code')->select();
|
|
if (empty($vip_code)) {
|
|
return V(0, "请输入正确的靓号");
|
|
}
|
|
$guild_special_id = model('Guild')->getOne(['guild_special_id'=>$request['guild_special_id']]);
|
|
if ($guild_special_id) {
|
|
return V(0, "靓号已使用");
|
|
}
|
|
}
|
|
Db::startTrans();
|
|
try {
|
|
$data = [
|
|
'guild_special_id' => $guild_special_id,
|
|
'user_id' => $user_id,
|
|
'guild_name' => $request['guild_name'],
|
|
'intro' => $request['guild_desc'],
|
|
'cover' => $request['guild_logo']
|
|
];
|
|
$res = model('Guild')->add($data);
|
|
if (!$res) {
|
|
db::rollback();
|
|
return V(0, "创建失败");
|
|
}
|
|
//会长是否有房间
|
|
$rid = 0;
|
|
$where = [
|
|
'user_id' => $user_id,
|
|
'delete_time' => 0
|
|
];
|
|
$where['apply_status'] = 2;//1待审核 2审核通过 3审核失败
|
|
$where['type_id'] = ['<>',6];
|
|
$room_info = db::name('vs_room')->where($where)->find();
|
|
if($room_info){
|
|
$rid = $room_info['id'];
|
|
}
|
|
$insert_data = [];
|
|
$insert_data['user_id'] = $user_id;
|
|
$insert_data['guild_id'] = $res;
|
|
$insert_data['room_id'] = $rid;
|
|
$insert_data['status'] = 1;
|
|
$insert_data['is_deacon'] = 1;
|
|
$insert_data['createtime'] = time();
|
|
$insert_data['is_show_room'] = 1;
|
|
$re = db::name('vs_guild_user')->insert($insert_data);
|
|
if (!$re) {
|
|
db::rollback();
|
|
return V(0, "加入失败");
|
|
}
|
|
$reslut = model('api/Tencent')->create_group($user_id,'g'.$res,"Public",$request['guild_logo'],$request['guild_name']);
|
|
if ($reslut['code'] ==0 ) {
|
|
db::rollback();
|
|
return V(0, $reslut['msg']);
|
|
}
|
|
model('api/Tencent')->send_group_system_notification('g'.$res, $request['guild_name'].'工会群聊创建成功');
|
|
db::commit();
|
|
return V(1,"成功", []);
|
|
} catch (\Exception $e) {
|
|
db::rollback();
|
|
return V(0, $e->getMessage());
|
|
}
|
|
}else{
|
|
return V(0,"参数错误", []);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 修改
|
|
*/
|
|
public function guild_edit(){
|
|
if ($this->request->isPost()) {
|
|
$request = $this->request->post();
|
|
if (empty($request['id'])) {
|
|
return V(0, "请选择要修改的工会");
|
|
}
|
|
$guild = model('Guild')->getOne(['id'=>$request['id']]);
|
|
if (empty($guild)) {
|
|
return V(0, "该工会不存在");
|
|
}
|
|
if (!empty($request['guild_name'])) {
|
|
$guild_name = model('Guild')->getOne(['guild_name'=>$request['guild_name']]);
|
|
if (!empty($guild_name) && $guild_name['id'] != $request['id']) {
|
|
return V(0, "该工会名称已存在");
|
|
}
|
|
}
|
|
//靓号处理
|
|
if(!empty($request['guild_special_id']) && is_numeric($request['guild_special_id'])){
|
|
$decorate = model('api/Decorate')->where(['type'=>8,'special_num'=>$request['guild_special_id']])->find();
|
|
if (!$decorate) {
|
|
return V(0, "请输入正确的靓号");
|
|
}
|
|
if($decorate['is_user_buy'] ==1){
|
|
return V(0, "该靓号已使用");
|
|
}
|
|
//装扮靓号
|
|
$decorate_price_info = db::name('vs_decorate_price')->where(['did' => $decorate['did'],'is_delete' => 1])->order('day','asc')->find();
|
|
model('api/Decorate')->pay_decorate($guild['user_id'], $decorate['did'], $decorate_price_info['day'],2);
|
|
}
|
|
Db::startTrans();
|
|
try {
|
|
$data =[];
|
|
if(isset($request['guild_name']) && $request['guild_name']){
|
|
$data['guild_name'] = $request['guild_name'];
|
|
}
|
|
if(isset($request['user_id']) && $request['user_id']){
|
|
$userID = db::name('user')->where('user_code',$request['user_id'])->value('id');
|
|
$data['user_id'] = $userID;
|
|
}
|
|
if(isset($request['guild_logo']) && $request['guild_logo']){
|
|
$data['cover'] = $request['guild_logo'];
|
|
}
|
|
if(isset($request['guild_desc']) && $request['guild_desc']){
|
|
$data['intro'] = $request['guild_desc'];
|
|
}
|
|
$res = model('Guild')->edit(['id' => $request['id']], $data);
|
|
if ($res) {
|
|
db::commit();
|
|
return V(1, "修改成功");
|
|
} else {
|
|
db::rollback();
|
|
return V(0, "修改失败");
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
db::rollback();
|
|
return V(0, $e->getMessage());
|
|
}
|
|
}else{
|
|
return V(0,"参数错误", []);
|
|
}
|
|
}
|
|
/*
|
|
* 解散工会
|
|
*/
|
|
public function guild_dissolve(){
|
|
if(request()->isPost()){
|
|
$id = input('id');
|
|
if(!$id){
|
|
return V(0,"参数错误");
|
|
}
|
|
$guild = model('Guild')->getOne(['id'=>$id]);
|
|
if(empty($guild)){
|
|
return V(0,"该工会不存在");
|
|
}
|
|
if($guild['status'] == 2){
|
|
return V(0,"该工会已解散");
|
|
}
|
|
$res = model('Guild')->edit(['id'=>$id],['status'=>2,'delete_time'=>time()]);
|
|
|
|
if($res){
|
|
db('vs_guild_user')->where(['guild_id'=>$id,'quit_type'=>0])->update(['quit_type'=>3,'quit_time'=>time(),'delete_time'=>time()]);
|
|
//解散群
|
|
model('api/Tencent')->delete_group('g'.$id);
|
|
return V(1,"解散成功");
|
|
}else{
|
|
return V(0,"解散失败");
|
|
}
|
|
}
|
|
return V(0,"参数错误");
|
|
}
|
|
/*
|
|
* 查看工会成员
|
|
*/
|
|
public function guild_member_lists(){
|
|
//管理员ID
|
|
$page = input('page', 1);
|
|
$page_limit = input('page_limit', 30);
|
|
$guild_id = input('guild_id', 0);
|
|
$search_stime = input('search_stime','');
|
|
$search_etime = input('search_etime','');
|
|
$user_id = input('user_id', 0);
|
|
$where=['a.status'=>1];
|
|
if(!$guild_id){
|
|
return V(0,"参数错误");
|
|
}
|
|
if($user_id){
|
|
if(is_numeric($user_id)){
|
|
$where['b.user_code'] = $user_id;
|
|
}else{
|
|
$where['b.nickname'] = ['like', '%'.$user_id.'%'];
|
|
}
|
|
|
|
}
|
|
$count = db::name($this->table_guild_user)->alias('a')
|
|
->join('user b', 'a.user_id = b.id', 'left')
|
|
->where(['a.guild_id'=>$guild_id,'a.quit_type'=>['in',[0,3]]])->where($where)->count();
|
|
$list = db::name($this->table_guild_user)->alias('a')
|
|
->field('a.*,b.nickname,b.user_code')
|
|
->join('user b', 'a.user_id = b.id', 'left')
|
|
->where(['a.guild_id'=>$guild_id,'a.quit_type'=>['in',[0,3]]])->where($where)->page($page, $page_limit)->select();
|
|
$rum_lists = [];
|
|
$coin_consumption_type_array = model('common/UserWallet')->coin_consumption_type_array;
|
|
$coin_consumption_type_array = array_diff($coin_consumption_type_array, [model('common/UserWallet')::OPERATION_CONSUME]);
|
|
foreach ($list as $k=>$v){
|
|
$user_info = model('api/User')->get_user_info($v['user_id'],['user','user_level']);
|
|
$rum_lists[$k]['id']=$v['id'];
|
|
$rum_lists[$k]['user_id']=$v['user_id'];
|
|
$rum_lists[$k]['user_code']=model('api/Decorate')->user_decorate_detail($v['user_id'],6);
|
|
$rum_lists[$k]['nickname']=$user_info['nickname'];
|
|
$rum_lists[$k]['charm_level']=$user_info['charm_level'];
|
|
$rum_lists[$k]['wealth_level']=$user_info['wealth_level'];
|
|
//用户流水
|
|
$consumption_sql = db::name('vs_user_money_log')
|
|
->whereIn('change_type',$coin_consumption_type_array)
|
|
->where(['money_type'=>1,'user_id' => $v['user_id']]);
|
|
if($v['quit_type'] == 3){
|
|
$consumption_sql->where(['createtime'=>['<=',$v['delete_time']]]);
|
|
$consumption_sql->where(['createtime'=>['>=',$v['createtime']]]);
|
|
}
|
|
if($search_stime){
|
|
$consumption_sql->where(['createtime'=>['>=',$search_stime]]);
|
|
}
|
|
if($search_etime){
|
|
$consumption_sql->where(['createtime'=>['<=',$search_etime]]);
|
|
|
|
}
|
|
$consumption = $consumption_sql->sum('change_value');
|
|
$rum_lists[$k]['consumption'] = $consumption;
|
|
$rum_lists[$k]['add_time'] = date('Y-m-d H:i:s',$v['createtime']);
|
|
}
|
|
$return_data = [
|
|
'page' =>$page,
|
|
'page_limit' => $page_limit,
|
|
'count' => $count,
|
|
'lists' => $rum_lists
|
|
];
|
|
return V(1,"成功", $return_data);
|
|
}
|
|
/*
|
|
* 查看房间
|
|
*/
|
|
public function guild_room_lists(){
|
|
$page = input('page', 1);
|
|
$page_limit = input('page_limit', 30);
|
|
$guild_id = input('guild_id', 0);
|
|
$search_stime = input('search_stime','');
|
|
$search_etime = input('search_etime','');
|
|
$room_id = input('room_id', 0);
|
|
$where=['a.status'=>1];
|
|
$where=['a.room_id'=>['>',0]];
|
|
if(!$guild_id){
|
|
return V(0,"参数错误");
|
|
}
|
|
if($room_id){
|
|
if(is_numeric($room_id)){
|
|
$where['b.room_number'] = $room_id;
|
|
}else{
|
|
$where['b.room_name'] = ['like', '%'.$room_id.'%'];
|
|
}
|
|
}
|
|
$count = db::name($this->table_guild_user)->alias('a')
|
|
->join('vs_room b', 'a.room_id = b.id', 'left')
|
|
->where(['a.guild_id'=>$guild_id,'a.quit_type'=>['in',[0,3]]])->where($where)->count();
|
|
$list = db::name($this->table_guild_user)->alias('a')
|
|
->join('vs_room b', 'a.room_id = b.id', 'left')
|
|
->where(['a.guild_id'=>$guild_id,'a.quit_type'=>['in',[0,3]]])->where($where)->page($page, $page_limit)->select();
|
|
if(!$list){
|
|
return V(0,"暂无数据");
|
|
}
|
|
$rum_lists = [];
|
|
foreach ($list as $k=>$v){
|
|
$room_info = db::name('vs_room')->where(['id'=>$v['room_id']])->find();
|
|
$rum_lists[$k]['id']=$v['id'];
|
|
$rum_lists[$k]['room_id']=$v['room_id'];
|
|
$rum_lists[$k]['room_code']= model('api/Decorate')->user_decorate_detail($v['room_id'], 7);
|
|
$rum_lists[$k]['room_name']=$room_info['room_name']?? '';
|
|
$rum_lists[$k]['room_cover']=$room_info['room_cover']?? '';
|
|
//房间流水
|
|
$rum_lists[$k]['consumption']= model('Room')->getRoomFlow($v['room_id'],$search_stime,$search_etime);
|
|
$rum_lists[$k]['add_time'] = date('Y-m-d H:i:s',$v['createtime']);
|
|
}
|
|
$return_data = [
|
|
'page' =>$page,
|
|
'page_limit' => $page_limit,
|
|
'count' => $count,
|
|
'lists' => $rum_lists
|
|
];
|
|
return V(1,"成功", $return_data);
|
|
|
|
}
|
|
|
|
//踢出公会
|
|
public function kick_guild_member(){
|
|
$user_id = input('user_id', 0);
|
|
$guild_id = input('guild_id', 0);
|
|
if(!$guild_id){
|
|
return V(0,"参数错误");
|
|
}
|
|
$guild_info = Db::name('vs_guild')->where('id', $guild_id)->find();
|
|
if(!$guild_info){
|
|
return V(0,"公会不存在");
|
|
}
|
|
$reslut = model('api/Guild')->kick_out_guild($guild_info['user_id'], $user_id, $guild_id);
|
|
return V($reslut['code'],$reslut['msg'], $reslut['data']);
|
|
}
|
|
|
|
/*
|
|
* 合并工会
|
|
*/
|
|
public function merge_guild(){
|
|
$guild_id = input('guild_id', '');
|
|
$merge_guild_id = input('merge_guild_id', '');
|
|
//解散工会
|
|
$guild = model('Guild')->getOne(['id'=>$guild_id]);
|
|
if(empty($guild)){
|
|
return V(0,"该工会不存在");
|
|
}
|
|
if($guild['status'] == 2){
|
|
return V(0,"该工会已解散");
|
|
}
|
|
db::startTrans();
|
|
try{
|
|
$res = model('Guild')->edit(['id'=>$guild_id],['status'=>2,'delete_time'=>time()]);
|
|
//并入工会
|
|
if(!$merge_guild_id){
|
|
db::rollback();
|
|
return V(0,"参数错误");
|
|
}
|
|
$merge_guild = model('Guild')->getOne(['id'=>$merge_guild_id]);
|
|
if(empty($merge_guild)){
|
|
db::rollback();
|
|
return V(0,"并入工会不存在");
|
|
}
|
|
$merge_guild_user = db('vs_guild_user')->where(['guild_id'=>$merge_guild_id,'quit_type'=>0])->select();
|
|
foreach ($merge_guild_user as $key=>$value){
|
|
$res = db('vs_guild_user')->insert([
|
|
'user_id'=>$value['user_id'],
|
|
'guild_id'=>$merge_guild_id,
|
|
'room_id'=>$value['room_id'],
|
|
'coin'=>$value['coin'],
|
|
'status'=>$value['status'],
|
|
'is_deacon'=>$value['is_deacon'],
|
|
'is_show_room'=>$value['is_show_room'],
|
|
'remarks'=>$value['remarks'],
|
|
'apply_time'=>$value['apply_time'],
|
|
'createtime'=>time(),
|
|
]);
|
|
if(!$res){
|
|
db::rollback();
|
|
return V(0,"失败");
|
|
}
|
|
//拉用户进入工会群聊
|
|
$rid = 'g'.$merge_guild_id;
|
|
$reslut = model('api/Tencent')->add_group_member($rid, $value['user_id']);
|
|
}
|
|
$return = db('vs_guild_user')->where(['guild_id'=>$guild_id,'quit_type'=>0])->update(['quit_type'=>3,'quit_time'=>time(),'updatetime'=>time(),'delete_time'=>time()]);
|
|
if (!$return) {
|
|
db::rollback();
|
|
return V(0,"失败");
|
|
}
|
|
//解散群
|
|
model('Tencent')->delete_group('g'.$guild_id);
|
|
db::commit();
|
|
return V(1,"成功");
|
|
} catch(\Exception $e) {
|
|
db::rollback();
|
|
return V(0,$e->getMessage());
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 工会补贴配置添加
|
|
*/
|
|
public function guild_subsidy_config_add(){
|
|
$start_amount = input('start_amount', 0);
|
|
$end_amount = input('end_amount', 0);
|
|
$subsidy_ratio = input('subsidy_ratio', 0);
|
|
if ($start_amount && $end_amount && $subsidy_ratio) {
|
|
$res = db::name($this->table_guild_subsidy_config)->insertGetId([
|
|
'start_amount' => $start_amount,
|
|
'end_amount' => $end_amount,
|
|
'subsidy_ratio' => $subsidy_ratio,
|
|
'createtime' => time(),
|
|
]);
|
|
if (!$res) {
|
|
return V(0, "添加失败");
|
|
}
|
|
}else{
|
|
return V(0, "参数错误");
|
|
}
|
|
|
|
return V(1, "添加成功");
|
|
}
|
|
/*
|
|
* 工会补贴配置列表
|
|
*/
|
|
public function guild_subsidy_config_lists(){
|
|
$page = input('page', 1);
|
|
$page_limit = input('page_limit', 30);
|
|
$where=[];
|
|
$count = db::name($this->table_guild_subsidy_config)->where($where)->count();
|
|
$lists = db::name($this->table_guild_subsidy_config)->where($where)->page($page, $page_limit)->order('end_amount asc')->select();
|
|
foreach ($lists as $key => $value) {
|
|
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
|
|
}
|
|
$return_data = [
|
|
'page' =>$page,
|
|
'page_limit' => $page_limit,
|
|
'count' => $count,
|
|
'lists' => $lists
|
|
];
|
|
return V(1,"成功", $return_data);
|
|
}
|
|
/*
|
|
* 工会补贴配置 删除
|
|
*/
|
|
public function del_guild_config_subsidy(){
|
|
$id = input('id', '');
|
|
if($id == ''){
|
|
return V(0,"参数错误");
|
|
}
|
|
$result = db::name($this->table_guild_subsidy_config)->where(['id'=>$id])->delete();
|
|
if(!$result){
|
|
return V(0,"删除失败");
|
|
}
|
|
return V(1,"成功");
|
|
}
|
|
/*
|
|
* 工会补贴配置 编辑
|
|
*/
|
|
public function edit_guild_config_subsidy(){
|
|
$id = input('id', '');
|
|
if($id == ''){
|
|
return V(0,"参数错误");
|
|
}
|
|
$guild_subsidy_config = db::name($this->table_guild_subsidy_config)->where(['id'=>$id])->find();
|
|
if(!$guild_subsidy_config){
|
|
return V(0,"数据不存在");
|
|
}
|
|
$start_amount = input('start_amount', "");
|
|
$end_amount = input('end_amount', "");
|
|
$subsidy_ratio = input('subsidy_ratio', "");
|
|
$data=[];
|
|
if($start_amount != ""){
|
|
$data['start_amount'] = $start_amount;
|
|
}
|
|
if($end_amount != ""){
|
|
$data['end_amount'] = $end_amount;
|
|
}
|
|
if($subsidy_ratio != ""){
|
|
$data['subsidy_ratio'] = $subsidy_ratio;
|
|
}
|
|
$result = db::name($this->table_guild_subsidy_config)->where(['id'=>$id])->update($data);
|
|
if(!$result){
|
|
return V(0,"修改失败");
|
|
}
|
|
return V(1,"成功");
|
|
}
|
|
/*
|
|
* 工会补贴配置 状态修改
|
|
*/
|
|
public function guild_config_subsidy_status(){
|
|
$id = input('id', '');
|
|
if($id == ''){
|
|
return V(0,"参数错误");
|
|
}
|
|
$status = input('status', '');
|
|
if($status == ''){
|
|
return V(0,"参数错误");
|
|
}
|
|
$result = db::name($this->table_guild_subsidy_config)->where(['id'=>$id])->update(['status'=>$status]);
|
|
if(!$result){
|
|
return V(0,"修改失败");
|
|
}
|
|
return V(1,"成功");
|
|
|
|
}
|
|
|
|
/*
|
|
* 工会周补贴列表
|
|
*/
|
|
public function guild_subsidy_list(){
|
|
$page = input('page', 1);
|
|
$page_limit = input('page_limit', 30);
|
|
$search_user_id = input('search_user_id', '');
|
|
$search_guild_id = input('search_guild_id', '');
|
|
$search_status_time = input('search_status_time', '');
|
|
$search_end_time = input('search_end_time', '');
|
|
$search_status = input('search_status', '');
|
|
$where = ['b.delete_time'=>0];
|
|
if($search_user_id){
|
|
$where['b.user_id'] = $search_user_id;
|
|
}
|
|
if($search_guild_id){
|
|
$where['a.guild_id'] = $search_guild_id;
|
|
}
|
|
if($search_status_time){
|
|
$where['a.start_time'] = ['>=', $search_status_time];
|
|
}
|
|
if($search_end_time){
|
|
$where['a.end_time'] = ['<=', $search_end_time];
|
|
}
|
|
if($search_status){
|
|
$where['a.status'] = $search_status;
|
|
}
|
|
$count = db::name($this->table_guild_subsidy)->alias('a')
|
|
->join('vs_guild b','a.guild_id = b.id')
|
|
->where($where)
|
|
->count();
|
|
$lists_data = db::name($this->table_guild_subsidy)->alias('a')
|
|
->join('vs_guild b','a.guild_id = b.id')
|
|
->where($where)
|
|
->order('a.id desc')
|
|
->field('a.*,b.guild_name,b.user_id,b.guild_special_id')
|
|
->page($page,$page_limit)
|
|
->select();
|
|
$lists = [];
|
|
foreach ($lists_data as $key => $value) {
|
|
$lists[$key]['id'] = $value['id'];
|
|
$lists[$key]['user_id'] = $value['user_id'];
|
|
$lists[$key]['user_name'] = model('user')->where(['id'=>$value['user_id']])->value('nickname');
|
|
$lists[$key]['guild_id'] = $value['guild_special_id'];
|
|
$lists[$key]['guild_name'] = $value['guild_name'];
|
|
$lists[$key]['total_transaction'] = $value['total_transaction'];
|
|
$lists[$key]['subsidy_amount'] = $value['subsidy_amount'];
|
|
$lists[$key]['time'] = date('Y-m-d',strtotime($value['start_time'])) .'~'.date('Y-m-d',strtotime($value['end_time']));
|
|
$lists[$key]['status'] = $value['status'];
|
|
$lists[$key]['status_str'] = $value['status'] ? '已发放' : '未发放';
|
|
}
|
|
$return_data = [
|
|
'page' =>$page,
|
|
'page_limit' => $page_limit,
|
|
'count' => $count,
|
|
'lists' => $lists
|
|
];
|
|
return V(1,"成功", $return_data);
|
|
}
|
|
/*
|
|
* 补贴发放
|
|
*/
|
|
public function subsidy_give(){
|
|
$id = input('id');
|
|
$status = input('status', 0);
|
|
$remark = input('remark', 0);
|
|
if(!$id){
|
|
return V(0,"参数错误");
|
|
}
|
|
$data = db::name($this->table_guild_subsidy)->alias('a')
|
|
->join('vs_guild b','a.guild_id = b.id')
|
|
->where(['a.id'=>$id])
|
|
->field('a.subsidy_amount,b.user_id,a.status,a.id')
|
|
->find();
|
|
if(!$data){
|
|
return V(0,"参数错误");
|
|
}
|
|
if($data['status']!=0){
|
|
return V(0,"该申请已处理");
|
|
}
|
|
Db::startTrans();
|
|
try{
|
|
if($status==1){
|
|
//发放处理用户资金
|
|
$reslut = model('common/UserWallet')->change_user_money($data['user_id'], $data['subsidy_amount'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::GUILD_SUBSIDY,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::GUILD_SUBSIDY));
|
|
if ($reslut['code'] != 1) {
|
|
Db::rollback();
|
|
return V($reslut['code'],$reslut['msg']);
|
|
}
|
|
|
|
}
|
|
$res = DB::name($this->table_guild_subsidy)->where('id', $id)->update([
|
|
'status' => $status,
|
|
'remark' => $remark
|
|
]);
|
|
if($res){
|
|
Db::commit();
|
|
return V(1,"操作成功");
|
|
}else{
|
|
Db::rollback();
|
|
return V(0,"操作失败");
|
|
}
|
|
} catch (Exception $e) {
|
|
Db::rollback();
|
|
return V(0,$e->getMessage());
|
|
}
|
|
}
|
|
/*
|
|
* 批量补贴发放
|
|
*/
|
|
public function subsidy_give_batch()
|
|
{
|
|
$ids = input('ids');
|
|
$status = input('status', 0);
|
|
$remark = input('remark', 0);
|
|
$ids = explode(',', $ids);
|
|
if (!$ids) {
|
|
return V(0, "参数错误");
|
|
}
|
|
$data = db::name($this->table_guild_subsidy)->alias('a')
|
|
->join('vs_guild b','a.guild_id = b.id')
|
|
->whereIn('guild_id',$ids)
|
|
->field('a.subsidy_amount,b.user_id,a.status,a.id')
|
|
->select();
|
|
if (!$data) {
|
|
return V(0, "参数错误");
|
|
}
|
|
|
|
Db::startTrans();
|
|
try {
|
|
foreach ($data as $key => $value) {
|
|
if ($value['status'] != 0) {
|
|
continue;
|
|
}
|
|
if($status==1){
|
|
//发放处理用户资金
|
|
$reslut = model('common/UserWallet')->change_user_money($value['user_id'], $value['subsidy_amount'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::GUILD_SUBSIDY,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::GUILD_SUBSIDY));
|
|
if ($reslut['code'] != 1) {
|
|
Db::rollback();
|
|
return V($reslut['code'],$reslut['msg']);
|
|
}
|
|
|
|
}
|
|
}
|
|
$res = DB::name($this->table_guild_subsidy)->whereIn('id', $ids)->where('status', 0)->update([
|
|
'status' => $status,
|
|
'remark' => $remark
|
|
]);
|
|
if($res){
|
|
Db::commit();
|
|
return V(1,"操作成功");
|
|
}else{
|
|
Db::rollback();
|
|
return V(0,"操作失败");
|
|
}
|
|
} catch (Exception $e) {
|
|
Db::rollback();
|
|
return V(0, $e->getMessage());
|
|
}
|
|
}
|
|
|
|
}
|