isPost()) { return View::fetch("Cardextractor/category_add"); } else { $data = input('post.'); if (empty($data['title'])) { return $this->renderError("请输入分类名称"); } if (RegZero($data['sort'])) { return $this->renderError("排序输入不规范,请输入整数"); } $data['addtime'] = time(); $dd = Category::insert($data); if ($dd) { return $this->renderSuccess("添加成功"); } else { return $this->renderError("网络繁忙,请稍后"); } } } /** * 分类编辑 */ public function category_edit(Request $request) { if (!$request->isPost()) { $id = $request->param('id/d', 0); $info = Category::where(['id' => $id])->find(); if (!$info) { return $this->renderError("请求参数错误"); } $type = $info['type']; View::assign('type', $type); View::assign('info', $info); return View::fetch("Cardextractor/category_edit"); } else { $data = input('post.'); if (empty($data['id'])) { return $this->renderError("请求参数错误"); } $info = Category::where(['id' => $data['id']])->find(); if (!$info) { return $this->renderError("请求参数错误1"); } if (empty($data['title'])) { return $this->renderError("请输入分类名称"); } if (RegZero($data['sort'])) { return $this->renderError("排序输入不规范,请输入整数"); } $data['update_time'] = time(); Db::startTrans(); $res[] = $info->allowField([])->update($data); if (resCheck($res)) { Db::commit(); return $this->renderSuccess("编辑成功"); } else { Db::rollback(); return $this->renderError("网络繁忙,请稍后"); } } } /** * 分类删除 */ public function category_del(Request $request) { $id = $request->post('id/d'); $data = Category::where(['id' => $id])->field('id')->find(); if (!$data) { return $this->renderError("数据不存在"); } $result = Category::where(['id' => $id])->delete(); if ($result) { return $this->renderSuccess("操作成功"); } else { return $this->renderError("网络繁忙,请稍后"); } } /** * 盒子列表 */ public function card_goods(Request $request) { $title = trim(input('get.title')); $status = trim(input('get.status')); $whe = array(); $whe[] = ['type', '=', 4]; if ($title) { $whe[] = ['title', 'like', '%' . $title . '%']; } if ($status) { $whe[] = ['status', '=', $status]; } $field = "*"; $order = "id desc"; $data = GoodsModel::getList($whe, $field, $order, $this->page); foreach ($data['list'] as &$value) { $category_name = Category::field('title')->where('id', '=', $value['category_id'])->value('title'); $value['category_name'] = $category_name; #盒子等级列表 $all_sale_stock = 0; $all_special_stock = 0; $shang = Shang::field('id,title,pro')->where('goods_id', '=', $value['id'])->select(); foreach ($shang as &$shang_value) { #赏等级奖品 $goodslist_count = GoodsList::field('id') ->where('goods_id', '=', $value['id']) ->where('shang_id', '=', $shang_value['id']) ->count(); $shang_value['goodslist_count'] = $goodslist_count; #库存 $special_stock = GoodsList::field('special_stock') ->where('goods_id', '=', $value['id']) ->where('shang_id', '=', $shang_value['id']) ->where('special_stock', '>', 0) ->sum('special_stock'); $shang_value['special_stock'] = $special_stock; $all_special_stock += $special_stock; #销量 $sale_stock = OrderList::field('id') ->where('goods_id', '=', $value['id']) ->where('shang_id', '=', $shang_value['id']) ->count(); $shang_value['sale_stock'] = $sale_stock; $all_sale_stock += $sale_stock; } $value['shang'] = $shang; $value['all_sale_stock'] = $all_sale_stock; $value['all_special_stock'] = $all_special_stock; } View::assign('list', $data['list']); View::assign('count', $data['count']); View::assign('page', $data['page']); return View::fetch("Cardextractor/card_goods"); } /** * 添加盒子 */ public function card_goods_add(Request $request) { if (!$request->isPost()) { $category = Category::field('id,title')->select(); View::assign('category', $category); return View::fetch("Cardextractor/card_goods_add"); } else { $data = input('post.'); if (empty($data['title'])) { return $this->renderError("请输入盒子名称"); } if (RegMoney($data['price'])) { return $this->renderError("盒子价格输入不规范,最多保留两位小数"); } if (RegZero($data['sort'])) { return $this->renderError("排序输入不规范,请输入整数"); } $data['stock'] = 0; $data['lock_is'] = 0; $data['lock_time'] = 0; $data['prize_num'] = 0; if (empty($data['category_id'])) { return $this->renderError("请选择分类"); } if ($data['coupon_is'] == 1) { if (RegInt($data['coupon_pro'])) { return $this->renderError("发券概率请设置大于0的整数"); } } elseif ($data['coupon_is'] == 0) { $data['coupon_pro'] = 0; } else { return $this->renderError("发券开关选择错误"); } if ($data['integral_is'] != 0 && $data['integral_is'] != 1) { return $this->renderError("发积分开关选择错误"); } if (empty($data['imgurl'])) { return $this->renderError("请上传盒子封面图"); } if (empty($data['imgurl_detail'])) { return $this->renderError("请上传盒子详情封面图"); } if (empty($data['prize_imgurl'])) { return $this->renderError("请上传卡牌背面图"); } if (empty($data['card_banner'])) { return $this->renderError("请上传卡册banner"); } $data['type'] = 4; $data['status'] = 2; $data['addtime'] = time(); $card_set = getConfig('card_set'); unset($card_set['update_time']); $data['card_set'] = json_encode($card_set); $dd = GoodsModel::insert($data); if ($dd) { return $this->renderSuccess("添加成功"); } else { return $this->renderError("网络繁忙,请稍后"); } } } /** * 编辑盒子 */ public function card_goods_edit(Request $request) { if (!$request->isPost()) { $id = $request->param('id/d', 0); $info = GoodsModel::where(['id' => $id])->find(); if (!$info) { return $this->renderError("请求参数错误"); } $type = $info['type']; $category = Category::field('id,title')->select(); View::assign('category', $category); View::assign('type', $type); View::assign('info', $info); return View::fetch("Cardextractor/card_goods_edit"); } else { $data = input('post.'); if (empty($data['id'])) { return $this->renderError("请求参数错误"); } $info = GoodsModel::where(['id' => $data['id']])->find(); if (!$info) { return $this->renderError("请求参数错误1"); } if (empty($data['title'])) { return $this->renderError("请输入盒子名称"); } if (RegMoney($data['price'])) { return $this->renderError("盒子价格输入不规范,最多保留两位小数"); } if (RegZero($data['sort'])) { return $this->renderError("排序输入不规范,请输入整数"); } $data['stock'] = 0; $data['lock_is'] = 0; $data['lock_time'] = 0; $data['prize_num'] = 0; if (empty($data['category_id'])) { return $this->renderError("请选择分类"); } if ($data['coupon_is'] == 1) { if (RegInt($data['coupon_pro'])) { return $this->renderError("发券概率请设置大于0的整数"); } } elseif ($data['coupon_is'] == 0) { $data['coupon_pro'] = 0; } else { return $this->renderError("发券开关选择错误"); } if ($data['integral_is'] != 0 && $data['integral_is'] != 1) { return $this->renderError("发积分开关选择错误"); } if (empty($data['imgurl'])) { return $this->renderError("请上传盒子封面图"); } if (empty($data['imgurl_detail'])) { return $this->renderError("请上传盒子封面图"); } if (empty($data['prize_imgurl'])) { return $this->renderError("请上传卡牌背面图"); } if (empty($data['card_banner'])) { return $this->renderError("请上传卡册banner"); } $data['update_time'] = time(); Db::startTrans(); $res = []; $res[] = $info->allowField([])->update($data); if (resCheck($res)) { Db::commit(); return $this->renderSuccess("编辑成功"); } else { Db::rollback(); return $this->renderError("网络繁忙,请稍后"); } } } /** * 编辑抽数 */ public function card_goods_edit_number(Request $request) { if (!$request->isPost()) { $id = $request->param('id/d', 0); $info = GoodsModel::where(['id' => $id])->find(); if (!$info) { return $this->renderError("请求参数错误"); } $card_set = json_decode($info['card_set'], true); #卡牌赏等级 $shang = Shang::field('id,title') ->where('goods_id', '=', $id) ->order('sort desc,id asc') ->select()->toArray(); View::assign('info', $info); View::assign('shang', $shang); View::assign('card_set', $card_set); return View::fetch("Cardextractor/card_goods_edit_number"); } else { $data = input('post.'); if (empty($data['id'])) { return $this->renderError("请求参数错误"); } $info = GoodsModel::where(['id' => $data['id']])->find(); if (!$info) { return $this->renderError("请求参数错误1"); } if (RegInt($data['left_count'])) { return $this->renderError("左按钮抽数设置错误,请设置大于0的整数"); } if (empty($data['left_title'])) { return $this->renderError("请输入左按钮标题"); } if (isset($data['left_shang_id'])) { foreach ($data['left_shang_id'] as $left_value) { if (empty($left_value)) { return $this->renderError("左按钮必出卡等级,有空选项"); } } foreach ($data['left_shang_count'] as $left_count) { if (RegInt($left_count)) { return $this->renderError("左按钮必出卡等级数量设置错误,请设置大于0的整数"); } } } if (RegInt($data['center_count'])) { return $this->renderError("中间按钮抽数设置错误,请设置大于0的整数"); } if (empty($data['center_title'])) { return $this->renderError("请输入中间按钮标题"); } if (isset($data['center_shang_id'])) { foreach ($data['center_shang_id'] as $center_value) { if (empty($center_value)) { return $this->renderError("中间按钮必出卡等级,有空选项"); } } foreach ($data['center_shang_count'] as $center_count) { if (RegInt($center_count)) { return $this->renderError("中间按钮必出卡等级数量设置错误,请设置大于0的整数"); } } } if (RegInt($data['right_count'])) { return $this->renderError("右按钮抽数设置错误,请设置大于0的整数"); } if (empty($data['right_title'])) { return $this->renderError("请输入右按钮标题"); } if (isset($data['right_shang_id'])) { foreach ($data['right_shang_id'] as $right_value) { if (empty($right_value)) { return $this->renderError("右按钮必出卡等级,有空选项"); } } foreach ($data['right_shang_count'] as $right_count) { if (RegInt($right_count)) { return $this->renderError("右按钮必出卡等级数量设置错误,请设置大于0的整数"); } } } unset($data['id']); $save_data = [ 'card_set' => json_encode($data), 'update_time' => time(), ]; Db::startTrans(); $res = []; $res[] = GoodsModel::where('id', $info['id'])->update($save_data); if (resCheck($res)) { Db::commit(); return $this->renderSuccess("编辑成功"); } else { Db::rollback(); return $this->renderError("网络繁忙,请稍后"); } } } /** * 上、下架,删除盒子 */ public function card_goods_del(Request $request) { $id = $request->post('id/d'); $status = $request->post('type/d'); $data = GoodsModel::where(['id' => $id])->field('id')->find(); if (!$data) { return $this->renderError("数据不存在"); } if ($status == 1 || $status == 2) { $result = GoodsModel::where(['id' => $id])->update(['status' => $status]); } elseif ($status == 3) { $result = GoodsModel::where(['id' => $id])->update(['delete_time' => time(), 'status' => 2]); // #卡等级 // $shang = Shang::field('id')->where('goods_id', '=', $id)->find(); // if ($shang) { // Shang::field('id')->where('goods_id', '=', $id)->delete(); // } // #奖品 // $goods = GoodsList::field('id')->where(['goods_id' => $id])->find(); // if ($goods) { // GoodsList::field('id')->where(['goods_id' => $id])->delete(); // } } else { return $this->renderError("请求参数错误"); } if ($result) { return $this->renderSuccess("操作成功"); } else { return $this->renderError("网络繁忙,请稍后"); } } /** * 卡等级 */ public function card_shang(Request $request) { $goods_id = request()->param('goods_id/d', 0); // if ($goods_id <= 0) { // return $this->renderError("非法请求"); // } $goods = GoodsModel::where(['id' => $goods_id])->find(); // if (!$goods) { // return $this->renderError("请求参数错误"); // } $data = Shang::where('id','<',39)->whereOr('id','>',113) ->order('id desc') ->select()->toArray(); #概率 $pro = array_sum(array_column($data, 'pro')); View::assign('goods_id', $goods_id); View::assign('pro', $pro); View::assign('list', $data); View::assign('count', count($data)); return View::fetch("Cardextractor/card_shang"); } /** * 添加卡等级 */ public function card_shang_add(Request $request) { if (!$request->isPost()) { // $goods_id = request()->param('goods_id/d', 0); // $goods = GoodsModel::where(['id' => $goods_id])->find(); // if (!$goods) { // return $this->renderError("请求参数错误"); // } // if ($goods['type'] != 4) { // return $this->renderError("请求参数错误1"); // } View::assign('goods_id', 0); return View::fetch("Cardextractor/card_shang_add"); } else { $data = input('post.'); // if (empty($data['goods_id'])) { // return $this->renderError("请求参数错误"); // } // $goods = GoodsModel::where(['id' => $data['goods_id']])->find(); // if (!$goods) { // return $this->renderError("请求参数错误1"); // } if (empty($data['title'])) { return $this->renderError("请输入等级名称"); } if (RegMoney($data['pro'])) { return $this->renderError("概率输入不规范,最多保留两位小数"); } if (RegZero($data['sort'])) { return $this->renderError("排序输入不规范,请输入整数"); } // if (empty($data['imgurl'])) { // return $this->renderError("请上传等级图标"); // } $data['update_time'] = time(); $dd = Shang::insert($data); if ($dd) { return $this->renderSuccess("添加成功"); } else { return $this->renderError("网络繁忙,请稍后"); } } } /** * 编辑卡等级 */ public function card_shang_edit(Request $request) { if (!$request->isPost()) { $id = $request->param('id/d', 0); $info = Shang::where(['id' => $id])->find(); if (!$info) { return $this->renderError("请求参数错误"); } View::assign('info', $info); return View::fetch("Cardextractor/card_shang_edit"); } else { $data = input('post.'); if (empty($data['id'])) { return $this->renderError("请求参数错误"); } $info = Shang::where(['id' => $data['id']])->find(); if (!$info) { return $this->renderError("请求参数错误1"); } if (empty($data['title'])) { return $this->renderError("请输入等级名称"); } if (RegMoney($data['pro'])) { return $this->renderError("概率输入不规范,最多保留两位小数"); } if (RegZero($data['sort'])) { return $this->renderError("排序输入不规范,请输入整数"); } // if (empty($data['imgurl'])) { // return $this->renderError("请上传等级图标"); // } $data['update_time'] = time(); Db::startTrans(); $res[] = $info->allowField([])->update($data); if (resCheck($res)) { Db::commit(); return $this->renderSuccess("编辑成功"); } else { Db::rollback(); return $this->renderError("网络繁忙,请稍后"); } } } /** * 删除卡等级 */ public function card_shang_del(Request $request) { $id = $request->post('id/d'); $info = Shang::field('id')->where(['id' => $id])->where('id', '>', 38)->find(); if (!$info) { return $this->renderError("数据不存在"); } #卡等级 $goodslist = GoodsList::field('id')->where('shang_id', '=', $id)->find(); if ($goodslist) { return $this->renderError("当前卡等级关联还有奖品不可删除"); } $orderlist = OrderList::field('id')->where('shang_id', '=', $id)->find(); if ($orderlist) { return $this->renderError("当前卡等级已被抽奖不可删除"); } $result = Shang::where(['id' => $id])->delete(); if ($result) { return $this->renderSuccess("操作成功"); } else { return $this->renderError("网络繁忙,请稍后"); } } /** * 卡等级奖品 */ public function card_goodslist(Request $request) { $shang_id = $request->param('shang_id/d', 0); // $info = GoodsModel::where(['id' => $shang_id])->find(); //// dd($info); // if (!$info) { // return $this->renderError('请求参数错误'); // } // $goods = GoodsModel::where(['id' => $info['goods_id']])->find(); // if (!$goods) { // return $this->renderError("请求参数错误"); // } $title = trim(input('get.title')); $whe = array(); $whe[] = ['goods_id', '=', $shang_id]; $whe[] = ['num', '=', 0]; if (!empty($title)) { $whe[] = ['title', 'like', '%' . $title . '%']; } $field = "*"; $order = "sort desc,shang_id asc,id asc"; $data = GoodsList::getList($whe, $field, $order, 150); $real_pro = 0; foreach ($data['list'] as &$value) { $shang_title = CardLevel::where(['id' => $value['shang_id']])->value('title'); if ($shang_title){ $value['shang'] = $shang_title; }else{ $value['shang'] = '无'; } if ($value['goods_type'] == 2) { $value['sale_time'] = date('Y-m-d', $value['sale_time']); } else { $value['sale_time'] = ''; } $real_pro += $value['real_pro']; } View::assign('list', $data['list']); View::assign('count', $data['count']); View::assign('page', $data['page']); View::assign('real_pro', $real_pro); View::assign('shang_id', $shang_id); return View::fetch("Cardextractor/card_goodslist"); } /** * 添加卡等级奖品 */ public function card_goodslist_add(Request $request) { if (!$request->isPost()) { $card_id = $request->param('card_id/d', 0); // // $info = Goods::where(['id' => $shang_id])->find(); // if (!$info) { // return $this->renderError('请求参数错误'); // } $info = GoodsModel::where(['id' => $card_id])->find(); if (!$info) { return $this->renderError("请求参数错误"); } #卡牌赏等级 $shang = CardLevel::field('id,title') ->order('sort desc,id asc') ->select()->toArray(); View::assign('info', $info); View::assign('shang', $shang); return View::fetch('Cardextractor/card_goodslist_add'); } else { $data = input('post.'); if (empty($data['shang_id'])) { return $this->renderError('请求参数错误'); } $goods = GoodsModel::where(['id' => $data['card_id']])->find(); if (!$goods) { return $this->renderError('请求参数错误2'); } // if (empty($data['card_no'])) { // return $this->renderError('请输入赠送编号'); // } // $card_no_info = GoodsList::field('id')->where('card_no', '=', $data['card_no'])->find(); // if ($card_no_info) { // return $this->renderError('赠送编号已存在'); // } if (empty($data['title'])) { return $this->renderError('请输入卡名称'); } if (empty($data['shang_id'])) { return $this->renderError('请选择卡等级'); } if (RegMoney($data['price'])) { return $this->renderError('奖品售价设置错误,最多保留两位小数'); } if (RegMoney($data['money'])) { return $this->renderError('兑换价格设置错误,最多保留两位小数'); } if ($data['goods_type'] == 1) { $data['sale_time'] = 0; } else if ($data['goods_type'] == 2) { if (empty($data['sale_time'])) { return $this->renderError('请选择预售时间'); } $today_time = strtotime(date('Y-m-d', time())); $data['sale_time'] = strtotime($data['sale_time']); if ($today_time >= $data['sale_time']) { return $this->renderError('预售时间请在今天之后'); } } else { return $this->err('奖品类型选择错误'); } if ($data['special_stock'] != -100) { if (RegZero($data['special_stock'])) { return $this->renderError('奖品数量设置错误,请设置整数'); } } if (RegMoney($data['real_pro'])) { return $this->renderError('等级内概率设置错误,最多保留两位小数'); } if (RegZero($data['sort'])) { return $this->renderError('排序请输入整数'); } if (empty($data['imgurl'])) { return $this->renderError('请上传图片'); } $data['addtime'] = time(); $data['prize_code'] = getPrizeCode() . '_' . time(); $data['goods_id'] = $goods['card_id']; $res = GoodsList::insert($data); if ($res) { return $this->renderSuccess('添加成功'); } else { return $this->renderError('添加失败'); } } } /** * 编辑卡等级奖品 */ public function card_goodslist_edit(Request $request) { if (!$request->isPost()) { $id = $request->param('id/d', 0); $goods = GoodsList::where(['id' => $id])->find(); if (!$goods) { return $this->renderError('请求参数错误'); } if ($goods['goods_type'] == 2) { $goods['sale_time'] = date('Y-m-d', $goods['sale_time']); } else { $goods['sale_time'] = ''; } $info = GoodsModel::where(['id' => $goods['goods_id']])->find(); if (!$info) { return $this->renderError('请求参数错误1'); } $card_list = GoodsModel::where('id', '=', $goods['goods_id'])->find(); if (!$card_list) { return $this->renderError('请求参数错误2'); } #卡牌赏等级 $shang = CardLevel::field('id,title') ->order('sort desc,id asc') ->select()->toArray(); View::assign('goods', $goods); View::assign('shang_title', $card_list['title']); View::assign('shang', $shang); return View::fetch('Cardextractor/card_goodslist_edit'); } else { $data = input('post.'); if (empty($data['id'])) { return $this->renderError('请求参数错误1'); } $goods = GoodsList::where(['id' => $data['id']])->find(); if (!$goods) { return $this->renderError('请求参数错误2'); } $info = GoodsModel::where(['id' => $goods['goods_id']])->find(); if (!$info) { return $this->renderError('请求参数错误3'); } $shang = Shang::where('id', '=', $goods['shang_id'])->find(); if (!$shang) { return $this->renderError('请求参数错误4'); } // if (empty($data['card_no'])) { // return $this->renderError('请输入赠送编号'); // } // $card_no_info = GoodsList::field('id') // ->where('prize_code', '<>', $goods['prize_code']) // ->where('card_no', '=', $data['card_no']) // ->find(); // if ($card_no_info) { // return $this->renderError('赠送编号已存在'); // } if (empty($data['title'])) { return $this->renderError('请输入奖品名称'); } if (RegMoney($data['price'])) { return $this->renderError('奖品售价设置错误,最多保留两位小数'); } if (RegMoney($data['money'])) { return $this->renderError('兑换价格设置错误,最多保留两位小数'); } if ($data['goods_type'] == 1) { $data['sale_time'] = 0; } else if ($data['goods_type'] == 2) { if (empty($data['sale_time'])) { return $this->renderError('请选择预售时间'); } $today_time = strtotime(date('Y - m - d', time())); $data['sale_time'] = strtotime($data['sale_time']); if ($today_time >= $data['sale_time']) { return $this->renderError('预售时间请在今天之后'); } } else { return $this->err('奖品类型选择错误'); } if ($data['special_stock'] != -100) { if (RegZero($data['special_stock'])) { return $this->renderError('奖品数量设置错误,请设置整数'); } } if (RegMoney($data['real_pro'])) { return $this->renderError('等级内概率设置错误,最多保留两位小数'); } if (RegZero($data['sort'])) { return $this->renderError('排序请输入整数'); } if (empty($data['imgurl'])) { return $this->renderError('请上传图片'); } $data['update_time'] = time(); unset($data['id']); $res = GoodsList::where(['prize_code' => $goods['prize_code']])->update($data); if ($res) { return $this->renderSuccess('编辑成功'); } else { return $this->renderError('编辑失败'); } } } /** * 奖品卡等级删除 */ public function card_goodslist_del(Request $request) { $id = \request()->param('id/d', 0); $prize_code = GoodsList::field('prize_code') ->where(['id' => $id]) ->value('prize_code'); if (!$prize_code) { return $this->renderError("请勿重复操作"); } #删除奖品 $res = GoodsList::field('id') ->where(['prize_code' => $prize_code]) ->delete(); if ($res) { return $this->renderSuccess("操作成功"); } else { return $this->renderError("操作失败"); } } /** * 抽卡机默认抽数配置 */ public function card_set() { if (request()->isGet()) { $info = getConfig('card_set'); View::assign("info", $info); return View::fetch('Cardextractor/card_set'); } else { $data = input("post."); $data['update_time'] = time(); $result = setConfig('card_set', $data); if ($result) { return $this->renderSuccess('修改成功'); } else { return $this->renderError('修改失败'); } } } }