where($map)->order('did desc')->page($page, $limit)->select(); foreach ($list as $k => &$v) { $v['base_image'] = localpath_to_netpath($v['base_image']); $v['play_image'] = localpath_to_netpath($v['play_image']); } $data = []; $data['count'] = db::name('decorate')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } public function get_decorates_list() { $map = []; $map[] = ['is_delete', '=', 1]; $map[] = ['type', 'in', [1,2,4,5]]; $list = db::name('decorate')->where($map)->order('did', 'asc')->select(); $data = []; $data['count'] = db::name('decorate')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } //编辑装扮 public function add_decorate_info($title, $type, $base_image, $play_image, $day, $price, $show_status, $file_type, $plays_image, $is_buy) { // $map = []; // $map[] = ['did', '=', $did]; // $map[] = ['is_delete', '=', 1]; // $info = db::name('decorate')->where($map)->find(); // if (empty($info)) { // return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; // } if (!in_array($type, [1, 2, 3, 4, 5,6,7,9])) { return ['code' => 201, 'msg' => '装扮类型参数非法', 'data' => null]; } $special_num = input('special_num', 0); $data = []; $data['title'] = $title; $data['type'] = $type; $data['base_image'] = $base_image; // $data['play_image'] = $play_image; $data['file_type'] = $file_type; if($file_type == 1){ $data['play_image'] = $play_image; }else{ $data['play_image'] = $plays_image; } // $data['day'] = $day; // $data['price'] = $price; $data['is_buy'] = $is_buy; $data['show_status'] = $show_status; $data['is_delete'] = 1; $data['delete_time'] = 0; $data['add_time'] = time(); $data['update_time'] = time(); if($type == 6 || $type == 7) { if(empty($special_num)) { return ['code' => 201, 'msg' => '请输入靓号号码', 'data' => null]; } $map = []; $map[] = ['special_num', '=', $special_num]; $map[] = ['is_delete', '=', 1]; $count = Db::name('decorate')->where($map)->count(); if($count > 0) { return ['code' => 201, 'msg' => '靓号已存在', 'data' => null]; } } else { $special_num = 0; } $data['special_num'] = $special_num; $status = db::name('decorate')->insert($data); if ($status) { return ['code' => 200, 'msg' => '添加成功', 'data' => null]; } else { return ['code' => 201, 'msg' => '添加失败', 'data' => null]; } } //编辑装扮 public function get_decorate_info($did) { $map = []; $map[] = ['did', '=', $did]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } $info['http_base_image'] = localpath_to_netpath($info['base_image']); $info['http_play_image'] = localpath_to_netpath($info['play_image']); $info['plays_image'] = $info['play_image']; return ['code' => 200, 'msg' => '编辑成功', 'data' => $info]; } public function edit_decorate_info($did, $title, $type, $base_image, $play_image, $show_status, $day, $price, $file_type, $plays_image, $is_buy) { $map = []; $map[] = ['did', '=', $did]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } if (!in_array($type, [1, 2, 3, 4, 5, 6, 7,9])) { return ['code' => 201, 'msg' => '装扮类型参数非法', 'data' => null]; } if (!in_array($show_status, [1, 2])) { return ['code' => 201, 'msg' => '显示状态参数非法', 'data' => null]; } $special_num = input('special_num', 0); //修改用户装扮表对应装扮类型 $data = []; $data['type'] = $type; $data['update_time'] = time(); $map = []; $map[] = ['did', '=', $did]; db::name('user_decorate')->where($map)->update($data); $data = []; $data['title'] = $title; $data['type'] = $type; $data['base_image'] = $base_image; // $data['play_image'] = $play_image; $data['file_type'] = $file_type; if($file_type == 1){ $data['play_image'] = $play_image; }else{ $data['play_image'] = $plays_image; } $data['show_status'] = $show_status; // $data['day'] = $day; // $data['price'] = $price; $data['is_buy'] = $is_buy; $data['update_time'] = time(); if($type == 6 || $type == 7) { if(empty($special_num)) { return ['code' => 201, 'msg' => '请输入靓号号码', 'data' => null]; } $map = []; $map[] = ['special_num', '=', $special_num]; $map[] = ['is_delete', '=', 1]; $map[] = ['did', 'neq', $did]; $count = Db::name('decorate')->where($map)->count(); if($count > 0) { return ['code' => 201, 'msg' => '靓号已存在', 'data' => null]; } } else { $special_num = 0; } $data['special_num'] = $special_num; $map = []; $map[] = ['did', '=', $did]; $status = db::name('decorate')->where($map)->update($data); if ($status) { return ['code' => 200, 'msg' => '编辑成功', 'data' => null]; } else { return ['code' => 201, 'msg' => '编辑失败', 'data' => null]; } } //删除装扮 public function delete_decorate_info($did) { $map = []; $map[] = ['did', '=', $did]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } $data = []; $data['is_delete'] = 2; $data['delete_time'] = time(); $map = []; $map[] = ['did', '=', $did]; $status = db::name('decorate')->where($map)->update($data); if ($status) { return ['code' => 200, 'msg' => '删除成功', 'data' => null]; } else { return ['code' => 201, 'msg' => '删除失败', 'data' => null]; } } //清理过期装扮 public function clear_user_decorate() { $map = []; $map[] = ['end_time', '<', time()]; $map[] = ['is_perpetual', '=', 2]; $list = Db::name('user_decorate')->where($map)->select(); Db::startTrans(); try { foreach($list as $v) { if($v['type'] == 7 && $v['rid'] > 0 && $v['is_using'] == 1) { Db::name('room')->where('rid', $v['rid'])->update(['pretty_room_number' => 0]); } if($v['type'] == 6 && $v['is_using'] == 1) { Db::name('user')->where('uid', $v['uid'])->update(['special_uid' => 0]); } if($v['type'] == 7 || $v['type'] == 6) { db::name('decorate')->where(['did' => $v['did']])->update(['is_user_buy' => 2]); } } db::name('user_decorate')->where($map)->delete(); // 提交事务 Db::commit(); return ['code' => 200, 'msg' => "成功", 'data' => null]; } catch (\Exception $e) { Db::rollback(); dump($e); // 回滚事务 return ['code' => 201, 'msg' => "失败5", 'data' => null]; } return '清理成功'; } public function give_user_decorate($uid, $did, $day) { if ($day < 1) { return ['code' => 201, 'msg' => '赠送至少一天', 'data' => null]; } $map = []; $map[] = ['did', '=', $did]; $map[] = ['is_delete', '=', 1]; $decorate_info = db::name('decorate')->where($map)->find(); if (empty($decorate_info)) { return ['code' => 201, 'msg' => '装扮信息不存在', 'data' => null]; } if($decorate_info['is_user_buy'] == 1){ return ['code' => 201, 'msg' => '该装扮已无法赠送', 'data' => null]; } $user_info = db::name('user')->where('uid', $uid)->find(); if (empty($user_info)) { return ['code' => 201, 'msg' => '用户信息不存在', 'data' => null]; } $map = []; $map[] = ['uid', '=', $uid]; $map[] = ['did', '=', $did]; $user_decorate_data = db::name('user_decorate')->where($map)->find(); if (empty($user_decorate_data)) { $data = []; $data['uid'] = $uid; $data['did'] = $did; $data['type'] = $decorate_info['type']; $data['is_using'] = 2; $now_time = time(); $data['special_num'] = $decorate_info['special_num']; $data['end_time'] = $now_time + $day * 24 * 3600; $data['add_time'] = $now_time; $data['update_time'] = $now_time; db::name('user_decorate')->insert($data); } else { $change_time = $day * 24 * 3600; db::name('user_decorate')->where('udid', $user_decorate_data['udid'])->setInc('end_time', $change_time); } if($decorate_info['type'] == 6 || $decorate_info['type'] == 7){ Db::name('decorate')->where('did', $decorate_info['did'])->update(['is_user_buy' => 1, 'update_time' => time()]); } return ['code' => 200, 'msg' => '赠送成功', 'data' => null]; } public function get_user_decorate_list($uid, $did, $type, $page, $page_limit) { $map = []; if (!empty($uid)) { $map[] = ['a.uid', '=', $uid]; } if (!empty($did)) { $map[] = ['a.did', '=', $did]; } if (!empty($type)) { $map[] = ['a.type', '=', $type]; } $map[] = ['b.is_delete', '=', 1]; $model = Db::name('user_decorate')->alias('a')->join('yy_decorate b', 'a.did = b.did'); $model = $model->where($map); $list = $model->order('udid desc')->page($page, $page_limit)->select(); foreach ($list as $k => &$v) { $v['base_image'] = localpath_to_netpath($v['base_image']); $v['play_image'] = localpath_to_netpath($v['play_image']); $user_info = db::name('user')->find($v['uid']); $v['nick_name'] = base64_decode($user_info['base64_nick_name']); } $data = []; $data['count'] = $model->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } public function delete_user_decorate($udid) { return ['code' => 201, 'msg' => '无法操作', 'data' => null]; $map = []; $map[] = ['udid', '=', $udid]; db::name('user_decorate')->where($map)->delete(); return ['code' => 200, 'msg' => '删除成功', 'data' => null]; } public function get_head_decorate_list(){ $map = []; $map[] = ['is_delete', '=', 1]; $map[] = ['type', '=', 1]; $list = db::name('decorate')->where($map)->order('did', 'asc')->select(); $data = []; $data['count'] = db::name('decorate')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } public function get_mount_decorate_list(){ $map = []; $map[] = ['is_delete', '=', 1]; $map[] = ['type', '=', 2]; $list = db::name('decorate')->where($map)->order('did', 'asc')->select(); $data = []; $data['count'] = db::name('decorate')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } public function get_cp_tx_list(){ $map = []; $map[] = ['is_delete', '=', 1]; $map[] = ['type', '=', 9]; $list = db::name('decorate')->where($map)->order('did', 'asc')->select(); $data = []; $data['count'] = db::name('decorate')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } public function get_wind_decorate_list(){ $map = []; $map[] = ['is_delete', '=', 1]; $map[] = ['type', '=', 3]; $list = db::name('decorate')->where($map)->order('did', 'asc')->select(); $data = []; $data['count'] = db::name('decorate')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } //获取装扮价位列表 public function get_decorate_price_list($did, $page = 1, $limit = 20) { $map = []; $map[] = ['is_delete', '=', 1]; $map[] = ['did', '=', $did]; $list = db::name('decorate_price')->where($map)->order('id desc')->page($page, $limit)->select(); $data = []; $data['count'] = db::name('decorate_price')->where($map)->count(); $data['list'] = $list; return ['code' => 200, 'msg' => '获取成功', 'data' => $data]; } //添加装扮价位 public function add_decorate_price($did, $price, $day) { $map = []; $map[] = ['did', '=', $did]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } //该装扮价位天数是否存在 $map = []; $map[] = ['did', '=', $did]; $map[] = ['day', '=', $day]; $map[] = ['is_delete', '=', 1]; $decorate_price_info = db::name('decorate_price')->where($map)->find(); if($decorate_price_info){ return ['code' => 201, 'msg' => '该装扮天数已存在', 'data' => null]; } $data = []; $data['did'] = $did; $data['price'] = $price; $data['day'] = $day; $data['is_delete'] = 1; $data['add_time'] = time(); $status = db::name('decorate_price')->insert($data); if ($status) { return ['code' => 200, 'msg' => '添加成功', 'data' => null]; } else { return ['code' => 201, 'msg' => '添加失败', 'data' => null]; } } //装扮价位详情 public function decorate_price_info($id) { $map = []; $map[] = ['id', '=', $id]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate_price')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } return ['code' => 200, 'msg' => '编辑成功', 'data' => $info]; } //编辑装扮价位 public function edit_decorate_price($id, $price, $day) { $map = []; $map[] = ['id', '=', $id]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate_price')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } //该装扮价位天数是否存在 $map = []; $map[] = ['did', '=', $info['did']]; $map[] = ['id', 'neq', $id]; $map[] = ['day', '=', $day]; $map[] = ['is_delete', '=', 1]; $decorate_price_info = db::name('decorate_price')->where($map)->find(); if($decorate_price_info){ return ['code' => 201, 'msg' => '该装扮天数已存在', 'data' => null]; } $data = []; $data['price'] = $price; $data['day'] = $day; $data['update_time'] = time(); $map = []; $map[] = ['id', '=', $id]; $status = db::name('decorate_price')->where($map)->update($data); if ($status) { return ['code' => 200, 'msg' => '编辑成功', 'data' => null]; } else { return ['code' => 201, 'msg' => '编辑失败', 'data' => null]; } } //删除装扮 public function del_decorate_price($id) { $map = []; $map[] = ['id', '=', $id]; $map[] = ['is_delete', '=', 1]; $info = db::name('decorate_price')->where($map)->find(); if (empty($info)) { return ['code' => 201, 'msg' => '信息不存在', 'data' => null]; } $data = []; $data['is_delete'] = 2; $data['update_time'] = time(); $map = []; $map[] = ['id', '=', $id]; $status = db::name('decorate_price')->where($map)->update($data); if ($status) { return ['code' => 200, 'msg' => '删除成功', 'data' => null]; } else { return ['code' => 201, 'msg' => '删除失败', 'data' => null]; } } }