优化无限赏支付抽奖方式。修复问题
This commit is contained in:
parent
b7b40cd120
commit
f1b5ff9a0b
53
README.md
53
README.md
|
|
@ -68,3 +68,56 @@ composer require yzalis/identicon
|
|||
composer require topthink/think-image
|
||||
php think UserStatisticsHour
|
||||
```
|
||||
|
||||
|
||||
原抽无限赏奖逻辑(内存消耗过大,不在使用)
|
||||
```sh
|
||||
// #组合中奖商品
|
||||
// $all_goods_id = [];
|
||||
// foreach ($goodslist as $value) {
|
||||
// $real_pro1 = $value['real_pro'];
|
||||
// $real_pro = $real_pro1 * 100000;
|
||||
// for ($i = 1; $i <= $real_pro; $i++) {
|
||||
// $all_goods_id[] = $value['id'];
|
||||
// }
|
||||
// }
|
||||
|
||||
// for ($i = 0; $i < $prize_num; $i++) {
|
||||
// #随机打乱
|
||||
// shuffle($all_goods_id);
|
||||
// shuffle($all_goods_id);
|
||||
// $prize_id = $all_goods_id[0];
|
||||
// $prize_info = GoodsList::where(['id' => $prize_id])->find();
|
||||
// #编号
|
||||
// $luck_no = OrderList::field('id')
|
||||
// ->where('goods_id', '=', $goods_id)
|
||||
// ->where('num', '=', 0)
|
||||
// ->where('order_type', '=', $order_type)
|
||||
// ->order('id desc')
|
||||
// ->value('luck_no');
|
||||
// $luck_no++;
|
||||
// #新增记录
|
||||
// $save_prize_info = [
|
||||
// 'order_id' => $order_id,
|
||||
// 'user_id' => $user_id,
|
||||
// 'status' => 0,#0未操作 1选择兑换 2选择发货
|
||||
// 'goods_id' => $goods_id,
|
||||
// 'num' => 0,
|
||||
// 'shang_id' => $prize_info['shang_id'],
|
||||
// 'goodslist_id' => $prize_info['id'],
|
||||
// 'goodslist_title' => $prize_info['title'],
|
||||
// 'goodslist_imgurl' => $prize_info['imgurl'],
|
||||
// 'goodslist_price' => $prize_info['price'],
|
||||
// 'goodslist_money' => $prize_info['money'],
|
||||
// 'goodslist_type' => $prize_info['goods_type'],
|
||||
// 'goodslist_sale_time' => $prize_info['sale_time'],
|
||||
// 'addtime' => time(),
|
||||
// 'prize_code' => $prize_info['prize_code'],
|
||||
// 'order_type' => $order_type,
|
||||
// 'luck_no' => $luck_no,
|
||||
// ];
|
||||
// #入库===
|
||||
// $res[] = OrderList::insert($save_prize_info);
|
||||
// }
|
||||
|
||||
```
|
||||
|
|
@ -53,6 +53,7 @@ class Advert extends Base
|
|||
*/
|
||||
public function add(Request $request)
|
||||
{
|
||||
|
||||
if (!$request->isPost()) {
|
||||
$types = AdvertTypeModel::order('sort asc, id asc')->select();
|
||||
View::assign('types', $types);
|
||||
|
|
|
|||
|
|
@ -770,7 +770,7 @@ class Goods extends Base
|
|||
if ($type == 1 || $type == 5 || $type == 10 || $type == 6 || $type == 11) {
|
||||
|
||||
} elseif ($type == 2 || $type == 8 || $type == 9) {
|
||||
if (RegMoney($data['real_pro']*100)) {
|
||||
if (RegMoney($data['real_pro']*1000)) {
|
||||
return $this->renderError('真实概率设置错误,最多保留两位小数');
|
||||
}
|
||||
} else if ($type == 3) {
|
||||
|
|
|
|||
|
|
@ -965,9 +965,10 @@ class User extends Base
|
|||
{
|
||||
$id = input('id');
|
||||
View::assign('id',$id);
|
||||
View::assign('user_id',$id);
|
||||
$nickname = input('nickname');
|
||||
View::assign('nickname',$nickname);
|
||||
return View::fetch();
|
||||
return View::fetch('User/user_order');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
135
app/admin/controller/WelfareHouse.php
Normal file
135
app/admin/controller/WelfareHouse.php
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
<?php
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\MyController;
|
||||
use app\common\model\WelfareHouse as WelfareHouseModel;
|
||||
use think\facade\View;
|
||||
|
||||
class WelfareHouse extends Base
|
||||
{
|
||||
// 列表页
|
||||
public function index()
|
||||
{
|
||||
if (request()->isAjax()) {
|
||||
$param = input('param.');
|
||||
$limit = $param['limit'] ?? 15;
|
||||
$offset = $param['offset'] ?? 0;
|
||||
|
||||
$where = [];
|
||||
if (!empty($param['name'])) {
|
||||
$where[] = ['name', 'like', '%' . $param['name'] . '%'];
|
||||
}
|
||||
|
||||
$count = WelfareHouseModel::where($where)->count();
|
||||
$list = WelfareHouseModel::where($where)
|
||||
->order('sort asc, id desc')
|
||||
->limit($offset, $limit)
|
||||
->select();
|
||||
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => '',
|
||||
'count' => $count,
|
||||
'data' => $list
|
||||
]);
|
||||
// json(['total' => $count, 'rows' => $list]);
|
||||
}
|
||||
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
// 添加
|
||||
public function add()
|
||||
{
|
||||
if (request()->isPost()) {
|
||||
$param = input('post.');
|
||||
|
||||
$validate = validate([
|
||||
'name|名称' => 'require',
|
||||
'image|图片' => 'require',
|
||||
'url|跳转路径' => 'require',
|
||||
'sort|排序' => 'require|number',
|
||||
]);
|
||||
|
||||
if (!$validate->check($param)) {
|
||||
return json(['status' => 0, 'msg' => $validate->getError()]);
|
||||
}
|
||||
|
||||
$param['status'] = isset($param['status']) ? 1 : 0;
|
||||
$result = WelfareHouseModel::create($param);
|
||||
|
||||
if ($result) {
|
||||
return json(['status' => 1, 'msg' => '添加成功']);
|
||||
} else {
|
||||
return json(['status' => 0, 'msg' => '添加失败']);
|
||||
}
|
||||
}
|
||||
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
// 编辑
|
||||
public function edit()
|
||||
{
|
||||
$id = input('id');
|
||||
$info = WelfareHouseModel::find($id);
|
||||
if (!$info) {
|
||||
return json(['status' => 0, 'msg' => '数据不存在']);
|
||||
}
|
||||
|
||||
if (request()->isPost()) {
|
||||
$param = input('post.');
|
||||
|
||||
$validate = validate([
|
||||
'name|名称' => 'require',
|
||||
'image|图片' => 'require',
|
||||
'url|跳转路径' => 'require',
|
||||
'sort|排序' => 'require|number',
|
||||
]);
|
||||
|
||||
if (!$validate->check($param)) {
|
||||
return json(['status' => 0, 'msg' => $validate->getError()]);
|
||||
}
|
||||
|
||||
$param['status'] = isset($param['status']) ? 1 : 0;
|
||||
$result = WelfareHouseModel::update($param);
|
||||
|
||||
if ($result) {
|
||||
return json(['status' => 1, 'msg' => '编辑成功']);
|
||||
} else {
|
||||
return json(['status' => 0, 'msg' => '编辑失败']);
|
||||
}
|
||||
}
|
||||
|
||||
View::assign('info', $info);
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
// 删除
|
||||
public function del()
|
||||
{
|
||||
$id = input('id');
|
||||
$result = WelfareHouseModel::destroy($id);
|
||||
|
||||
if ($result) {
|
||||
return json(['status' => 1, 'msg' => '删除成功']);
|
||||
} else {
|
||||
return json(['status' => 0, 'msg' => '删除失败']);
|
||||
}
|
||||
}
|
||||
|
||||
// 修改状态
|
||||
public function status()
|
||||
{
|
||||
$id = input('id');
|
||||
$status = input('status');
|
||||
|
||||
$result = WelfareHouseModel::where('id', $id)->update(['status' => $status]);
|
||||
|
||||
if ($result) {
|
||||
return json(['status' => 1, 'msg' => '操作成功']);
|
||||
} else {
|
||||
return json(['status' => 0, 'msg' => '操作失败']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -333,4 +333,13 @@ Route::post('goodstype/add', 'GoodsType/add');
|
|||
Route::rule('goodstype/edit', 'GoodsType/edit', 'GET|POST');
|
||||
Route::post('goodstype/delete', 'GoodsType/delete');
|
||||
Route::post('goodstype/status', 'GoodsType/status');
|
||||
Route::get('goodstype/getTypeList', 'GoodsType/getTypeList');
|
||||
Route::get('goodstype/getTypeList', 'GoodsType/getTypeList');
|
||||
|
||||
#============================
|
||||
#WelfareHouse.php福利屋管理
|
||||
#============================
|
||||
Route::rule('welfare_house', 'WelfareHouse/index', 'GET|POST');
|
||||
Route::rule('welfare_house_add', 'WelfareHouse/add', 'GET|POST');
|
||||
Route::rule('welfare_house_edit', 'WelfareHouse/edit', 'GET|POST');
|
||||
Route::rule('welfare_house_del', 'WelfareHouse/del', 'POST');
|
||||
Route::rule('welfare_house_status', 'WelfareHouse/status', 'POST');
|
||||
1
app/admin/view/public/footer.html
Normal file
1
app/admin/view/public/footer.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
57
app/admin/view/public/header.html
Normal file
57
app/admin/view/public/header.html
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>后台管理 -{$config.title}</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="/static/admin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="/static/admin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div id="LAY_app">
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<div class="layui-header">
|
||||
<!-- 头部区域 -->
|
||||
<ul class="layui-nav layui-layout-left">
|
||||
<li class="layui-nav-item layadmin-flexible" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
|
||||
<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="refresh" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh-3"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="theme">
|
||||
<i class="layui-icon layui-icon-theme"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="fullscreen">
|
||||
<i class="layui-icon layui-icon-screen-full"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a href="javascript:;">
|
||||
<cite>{:session('admin_user','','admin')}</cite>
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd layadmin-event="" style="text-align: center;"><a href="{:url('/admin/loginout')}">退出</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a href="javascript:;"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/admin/layui/layui.js"></script>
|
||||
<script src="/static/admin/js/jquery.min.js"></script>
|
||||
18
app/admin/view/public/header2.html
Normal file
18
app/admin/view/public/header2.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>后台管理 - {$config.title}</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="/static/admin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="/static/admin/style/admin.css" media="all">
|
||||
<style>
|
||||
.active_page span{
|
||||
background-color: #2196f385;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<script src="/static/admin/layui/layui.js"></script>
|
||||
<script src="/static/admin/js/jquery.min.js"></script>
|
||||
104
app/admin/view/welfare_house/add.html
Normal file
104
app/admin/view/welfare_house/add.html
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{include file="Public:header2"/}
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">添加福利屋</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="" method="post">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" required lay-verify="required" placeholder="请输入名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">图片</label>
|
||||
<div class="layui-input-block">
|
||||
<button type="button" class="layui-btn" id="image">
|
||||
<i class="layui-icon"></i>上传图片
|
||||
</button>
|
||||
<input type="hidden" name="image" value="">
|
||||
<div class="layui-upload-list">
|
||||
<img class="layui-upload-img" id="imagePreview" style="max-width: 200px; max-height: 100px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">跳转路径</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="url" required lay-verify="required" placeholder="请输入跳转路径" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" value="0" required lay-verify="required|number" placeholder="请输入排序" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="status" lay-skin="switch" lay-text="启用|禁用" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="formSubmit">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="Public:footer"/}
|
||||
<script>
|
||||
layui.use(['form', 'upload'], function(){
|
||||
var form = layui.form;
|
||||
var upload = layui.upload;
|
||||
|
||||
// 执行实例
|
||||
var uploadInst = upload.render({
|
||||
accept: 'image'
|
||||
,elem: '#image' // 绑定元素
|
||||
,url: '/admin/picture' // 上传接口
|
||||
,done: function(res){
|
||||
// 上传完毕回调
|
||||
if(res.status == 1){ // 成功
|
||||
layer.msg("上传成功", {icon:1, time:1000}, function(){
|
||||
$("#imagePreview").attr("src", res.data.path); // 单图
|
||||
$("input[name=image]").val(res.data.imgurl);
|
||||
});
|
||||
} else { // 失败
|
||||
layer.msg(res.msg, {icon:2, anim:6, time:1500});
|
||||
}
|
||||
}
|
||||
,error: function(){
|
||||
// 请求异常回调
|
||||
layer.msg('服务繁忙,请稍后再试', {icon:2, anim:6, time:1500});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(formSubmit)', function(data){
|
||||
$.ajax({
|
||||
url: '/admin/welfare_house_add',
|
||||
type: 'post',
|
||||
data: data.field,
|
||||
dataType: 'json',
|
||||
success: function(res){
|
||||
if(res.status == 1){
|
||||
layer.msg(res.msg, {icon: 1, time: 1000}, function(){
|
||||
window.location.href = '/admin/welfare_house';
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.msg, {icon: 2, anim: 6, time: 1500});
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
105
app/admin/view/welfare_house/edit.html
Normal file
105
app/admin/view/welfare_house/edit.html
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{include file="Public:header2"/}
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">编辑福利屋</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="" method="post">
|
||||
<input type="hidden" name="id" value="{$info.id}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" value="{$info.name}" required lay-verify="required" placeholder="请输入名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">图片</label>
|
||||
<div class="layui-input-block">
|
||||
<button type="button" class="layui-btn" id="image">
|
||||
<i class="layui-icon"></i>上传图片
|
||||
</button>
|
||||
<input type="hidden" name="image" value="{$info.image}">
|
||||
<div class="layui-upload-list">
|
||||
<img class="layui-upload-img" id="imagePreview" src="{$info.image}" style="max-width: 200px; max-height: 100px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">跳转路径</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="url" value="{$info.url}" required lay-verify="required" placeholder="请输入跳转路径" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" value="{$info.sort}" required lay-verify="required|number" placeholder="请输入排序" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="status" lay-skin="switch" lay-text="启用|禁用" {if $info.status eq 1}checked{/if}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="formSubmit">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="Public:footer"/}
|
||||
<script>
|
||||
layui.use(['form', 'upload'], function(){
|
||||
var form = layui.form;
|
||||
var upload = layui.upload;
|
||||
|
||||
// 执行实例
|
||||
var uploadInst = upload.render({
|
||||
accept: 'image'
|
||||
,elem: '#image' // 绑定元素
|
||||
,url: '/admin/picture' // 上传接口
|
||||
,done: function(res){
|
||||
// 上传完毕回调
|
||||
if(res.status == 1){ // 成功
|
||||
layer.msg("上传成功", {icon:1, time:1000}, function(){
|
||||
$("#imagePreview").attr("src", res.data.path); // 单图
|
||||
$("input[name=image]").val(res.data.imgurl);
|
||||
});
|
||||
} else { // 失败
|
||||
layer.msg(res.msg, {icon:2, anim:6, time:1500});
|
||||
}
|
||||
}
|
||||
,error: function(){
|
||||
// 请求异常回调
|
||||
layer.msg('服务繁忙,请稍后再试', {icon:2, anim:6, time:1500});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(formSubmit)', function(data){
|
||||
$.ajax({
|
||||
url: '/admin/welfare_house_edit',
|
||||
type: 'post',
|
||||
data: data.field,
|
||||
dataType: 'json',
|
||||
success: function(res){
|
||||
if(res.status == 1){
|
||||
layer.msg(res.msg, {icon: 1, time: 1000}, function(){
|
||||
window.location.href = '/admin/welfare_house';
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.msg, {icon: 2, anim: 6, time: 1500});
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
@ -43,10 +43,10 @@ class Notify extends Base
|
|||
// 获取微信支付配置
|
||||
$wxpayConfig = \app\common\helper\WxPayHelper::getWxPayConfig();
|
||||
$merchant = $wxpayConfig['merchant'];
|
||||
|
||||
|
||||
// 使用随机商户的密钥
|
||||
static::$secretKey = $merchant['keys'];
|
||||
|
||||
|
||||
// 获取公众号密钥
|
||||
static::$secretKeyAccount = getConfig('wechatofficialaccount')['keys'];
|
||||
}
|
||||
|
|
@ -1186,21 +1186,41 @@ class Notify extends Base
|
|||
->where($where)
|
||||
->select()->toArray();
|
||||
if ($goodslist) {
|
||||
#组合中奖商品
|
||||
$all_goods_id = [];
|
||||
foreach ($goodslist as $value) {
|
||||
$real_pro = $value['real_pro'] * 10000;
|
||||
for ($i = 1; $i <= $real_pro; $i++) {
|
||||
$all_goods_id[] = $value['id'];
|
||||
}
|
||||
|
||||
// 计算总概率
|
||||
$totalProbability = array_sum(array_column($goodslist, 'real_pro'));
|
||||
|
||||
// 构建概率区间
|
||||
$probabilityRanges = [];
|
||||
$currentRange = 0;
|
||||
foreach ($goodslist as $good) {
|
||||
$rangeStart = $currentRange;
|
||||
$currentRange += $good['real_pro'];
|
||||
$probabilityRanges[] = [
|
||||
'id' => $good['id'],
|
||||
'start' => $rangeStart,
|
||||
'end' => $currentRange
|
||||
];
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $prize_num; $i++) {
|
||||
#随机打乱
|
||||
shuffle($all_goods_id);
|
||||
shuffle($all_goods_id);
|
||||
$prize_id = $all_goods_id[0];
|
||||
// 生成随机数 (保持与原始方法相同的精度:100000)
|
||||
|
||||
$maxRand = (int) ($totalProbability * 100000);
|
||||
$random = mt_rand(0, $maxRand) / 100000;
|
||||
|
||||
// 查找中奖奖品
|
||||
$prize_id = null;
|
||||
foreach ($probabilityRanges as $range) {
|
||||
if ($random >= $range['start'] && $random < $range['end']) {
|
||||
$prize_id = $range['id'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取奖品信息
|
||||
$prize_info = GoodsList::where(['id' => $prize_id])->find();
|
||||
|
||||
#编号
|
||||
$luck_no = OrderList::field('id')
|
||||
->where('goods_id', '=', $goods_id)
|
||||
|
|
@ -1209,6 +1229,7 @@ class Notify extends Base
|
|||
->order('id desc')
|
||||
->value('luck_no');
|
||||
$luck_no++;
|
||||
|
||||
#新增记录
|
||||
$save_prize_info = [
|
||||
'order_id' => $order_id,
|
||||
|
|
@ -1229,10 +1250,12 @@ class Notify extends Base
|
|||
'order_type' => $order_type,
|
||||
'luck_no' => $luck_no,
|
||||
];
|
||||
|
||||
#入库===
|
||||
$res[] = OrderList::insert($save_prize_info);
|
||||
}
|
||||
|
||||
|
||||
//去除秘宝池次数
|
||||
if ($infinite_goods['type'] == 9 && $order['is_mibao'] == 1) {
|
||||
User::where('id', $user_id)->dec('mb_number', $prize_num)->update();
|
||||
|
|
@ -1960,7 +1983,7 @@ class Notify extends Base
|
|||
{
|
||||
//微信官方发货
|
||||
$wxServer = new \app\common\server\Wx($this->app);
|
||||
|
||||
|
||||
$access_token = $wxServer->get_access_token();
|
||||
$open_id = Db::name('user')->where('id', $user_id)->value('openid');
|
||||
$wxServer->post_order($open_id, $access_token, $order_num);
|
||||
|
|
|
|||
19
app/api/controller/WelfareHouse.php
Normal file
19
app/api/controller/WelfareHouse.php
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\BaseController;
|
||||
use app\common\model\WelfareHouse as WelfareHouseModel;
|
||||
|
||||
class WelfareHouse extends BaseController
|
||||
{
|
||||
// 获取福利屋列表
|
||||
public function getList()
|
||||
{
|
||||
$list = WelfareHouseModel::where('status', 1)
|
||||
->order('sort asc, id desc')
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
return json(['status' => 1, 'msg' => '获取成功', 'data' => $list]);
|
||||
}
|
||||
}
|
||||
|
|
@ -169,4 +169,9 @@ Route::any('mall_orderbuy', 'Mall/mall_orderbuy');
|
|||
Route::rule('goods/receive_sync', 'Goods/receive_sync', 'POST');
|
||||
|
||||
// 配置信息接口
|
||||
Route::rule('config', 'Config/index', 'GET');
|
||||
Route::rule('config', 'Config/index', 'GET');
|
||||
|
||||
#============================
|
||||
#WelfareHouse.php福利屋
|
||||
#============================
|
||||
Route::any('welfare_house_list', 'WelfareHouse/getList');
|
||||
26
app/common/model/WelfareHouse.php
Normal file
26
app/common/model/WelfareHouse.php
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
namespace app\common\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class WelfareHouse extends Model
|
||||
{
|
||||
// 设置表名
|
||||
protected $name = 'welfare_house';
|
||||
|
||||
// 自动写入时间戳
|
||||
protected $autoWriteTimestamp = true;
|
||||
|
||||
// 状态获取器
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$status = [0 => '禁用', 1 => '启用'];
|
||||
return $status[$data['status']];
|
||||
}
|
||||
|
||||
// 图片获取器
|
||||
public function getImageAttr($value)
|
||||
{
|
||||
return imageUrl($value);
|
||||
}
|
||||
}
|
||||
|
|
@ -180,6 +180,10 @@ return [
|
|||
'url' => '/admin/advert',
|
||||
'name' => '图片管理',
|
||||
],
|
||||
[
|
||||
'url' => '/admin/welfare_house',
|
||||
'name' => '福利屋管理',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
|
|||
BIN
public/storage/poster/share/6157.png
Normal file
BIN
public/storage/poster/share/6157.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue
Block a user