文件
mashangyoujiu/Application/Vip/Controller/ActivityController.class.php

769 行
31 KiB
PHP
可执行文件

<?php
namespace Vip\Controller;
use Think\Controller;
use Think\Jssdk;
use Think\Jssdks;
//[1.8.93]
class ActivityController extends BaseController
{
/**
*
*/
public function detailsa()
{
$this->getSignPack();
$this->display();
}
/**
*
*/
public function detailsa1()
{
$this->getSignPack();
$this->display();
}
/**
* 获取签名配置参数
*/
protected function getSignPack()
{
$merchant_id = session('merchantid');
$wMap = array(
'merchantid' => $merchant_id
);
$weChat = M('wxconfig')->where($wMap)->find();
if ($weChat['type'] == 1) {
$jsSdk = new Jssdk($weChat['appid'], $weChat['appsecret']);
} else if ($weChat['type'] == 2) {
$access_token = get_authorizer_access_token($merchant_id);
$jsSdk = new Jssdks($weChat['authorizer_appid'], $access_token);
} else {
$this->error('微信配置参数有误');
}
$signPackage = $jsSdk->GetSignPackage();
$this->assign('signPackage', $signPackage);
}
//活动中心
public function index()
{
$user = session('userinfo');
$map['pm.merchant_id'] = $user['merchantid'];
$map['pm.m_status'] = 1;
$map['pm.status'] = 1;
$plug = M('plug_merchant as pm')
->join('ls_plug as p on p.id=pm.plug_id AND p.type=1')
->where($map)
->field('p.*')
->select();
$this->assign('plug', $plug);
$this->display();
}
//领取红包成功
public function reward_success()
{
$money = I('get.money');
if (empty($money)) {
$this->tipsMsg(0, '您访问的页面不存在');
} else {
$this->assign('money', $money);
$this->display();
}
}
//公众号红包页面
public function reward()
{
$this->display();
}
//拆活动中心红包接口
public function openReward()
{
$user = session('userinfo');
if (IS_POST) {
if (empty($user)) {
$result['status'] = 0;
$result['msg'] = '访问错误';
$this->ajaxReturn($result);
}
$plug = D('RetailPlug')->getRewardAccess($user['merchantid']);
if ($plug) {
//红包插件能用
$RewardModel = D('Reward');
$reward = $RewardModel->getReward($user['merchantid'], 1);
if (empty($reward['reward_list'])) {
$result['status'] = 0;
$result['msg'] = '该红包已失效';
$this->ajaxReturn($result);
}
if ($reward && $reward['lessmoney'] >= 0.01 && $reward['lessnumber']) {
//还剩余红包
$map['vid'] = $user['id'];
$map['reward_id'] = $reward['id'];
$all_count = M('reward_record')->where($map)->count();
if ($reward['is_everyday'] == 1) {
//用户每天都可以领取红包
//获取用户当天领取记录
$map['_string'] = 'addtime <' . time() . ' AND addtime >' . strtotime(date('Y-m-d'));
$day_count = M('reward_record')->where($map)->count();
if ($all_count >= $reward['sum_max_time']) {
$result['status'] = 0;
$result['msg'] = '这次的红包领完啦,下次再来吧';
$this->ajaxReturn($result);
}
if ($day_count >= $reward['day_max_time']) {
$result['status'] = 0;
$result['msg'] = '今天红包领完啦,明天再来吧';
$this->ajaxReturn($result);
}
} else {
if ($all_count > 0) {
$result['status'] = 0;
$result['msg'] = '这次的红包领完啦,下次再来吧';
$this->ajaxReturn($result);
}
}
$res = $this->getRandMoney($reward['reward_list']);
$update = $RewardModel->toSetDec(array('id' => $reward['id']), 'lessmoney', $res['money']);
$update = $RewardModel->toSetDec(array('id' => $reward['id']), 'lessnumber', 1);
$update = $RewardModel->toUpdate(array('id' => $reward['id']), array('reward_list' => $res['reward_list']));
$RechargeOrderModel = D('RetailRechargeOrder');
$item1[$RechargeOrderModel::VID] = $user['id'];
$item1[$RechargeOrderModel::STATUS] = 1;
$item1[$RechargeOrderModel::MONEY] = $res['money'];
$item1[$RechargeOrderModel::ALL_MONEY] = $res['money'];
$item1[$RechargeOrderModel::SCENE_TYPE] = 5;//变动场景 1收银机 2商户后台 3门店后台 4小程序 5公众号
$item1[$RechargeOrderModel::TYPE] = 6;//变动类型 1充值 2消费 3编辑增加 4编辑减少 5退款增加 6红包充值 7大转盘充值 8礼品卡充值
$item1[$RechargeOrderModel::ADD_TIME] = time();
$item1[$RechargeOrderModel::REMARK] = '公众号拆红包获得' . $res['money'] . '元';
$item1[$RechargeOrderModel::STATE] = 1;
$item1[$RechargeOrderModel::MERCHANT_ID] = $user['merchantid'];
$addId = $RechargeOrderModel->addOrder($item1);
if ($addId) {
$item['money'] = $res['money'];
$item['vid'] = $user['id'];
$item['merchantid'] = $user['merchantid'];
$item['storeid'] = $user['storeid'];
$item['addtime'] = time();
$item['reward_id'] = $reward['id'];
$item['recharge_order_id'] = $addId;
$item['pay_order_id'] = $addId;
M('reward_record')->add($item);
D('Vip')->toSetInc(array('id' => $user['id']), 'balance', $res['money']);
$result['status'] = 1;
$result['msg'] = '领取成功';
$result['money'] = $res['money'];
} else {
$result['status'] = 0;
$result['msg'] = '领取失败,再试一次';
}
} else {
$result['status'] = 0;
$result['msg'] = '这次的红包领完啦,下次再来吧';
}
} else {
$result['status'] = 0;
$result['msg'] = '红包不可用';
}
$this->ajaxReturn($result);
}
}
//获取红包随机数
protected function getRandMoney($list)
{
$list = explode(',', $list);
if (count($list) > 1) {
$index = rand(0, count($list) - 1);
$money = $list[$index];
array_splice($list, $index, 1);
$str = implode(',', $list);
} else {
$money = $list[0];
$str = '';
}
$res['money'] = $money;
$res['reward_list'] = $str;
return $res;
}
//支付成功拆红包页面
public function reward_pay()
{
$payOrderId = I('get.id');
$PayOrderModel = D('RetailPayOrder');
$Order = $PayOrderModel->getFind(array($PayOrderModel::ID => $payOrderId));
if (empty($payOrderId) || empty($Order)) {
$this->tipsMsg(0, '你访问的页面不存在');
} else {
$RRRModel = D('RetailRewardRecord');
$recordList = $RRRModel->getFind(array($RRRModel::PAY_ORDER_ID => $payOrderId));
if ($recordList) {
$this->tipsMsg(0, '红包已被领取');
}
$this->assign('id', $payOrderId);
$this->display();
}
}
//支付成功拆红包接口
public function openPayReward()
{
$user = session('userinfo');
$payOrderId = I('post.id');
if (empty($user) || empty($payOrderId)) {
$result['status'] = 0;
$result['msg'] = '访问错误';
$this->ajaxReturn($result);
}
$PayOrderModel = D('RetailPayOrder');
$Order = $PayOrderModel->getFind(array($PayOrderModel::ID => $payOrderId));
if (empty($payOrderId) || empty($Order)) {
$result['status'] = 0;
$result['msg'] = '访问错误';
$this->ajaxReturn($result);
}
$RechargeOrderModel = D('RetailRechargeOrder');
$old = $RechargeOrderModel->getFind(array($RechargeOrderModel::PAY_ORDER_ID => $payOrderId));
if (!empty($old)) {
$result['status'] = 0;
$result['msg'] = '红包已经被领取了';
$this->ajaxReturn($result);
}
$RRRModel = D('RetailRewardRecord');
$recordList = $RRRModel->getFind(array($RRRModel::PAY_ORDER_ID => $payOrderId));
if ($recordList) {
$result['status'] = 0;
$result['msg'] = '红包已被领取';
$this->ajaxReturn($result);
}
$user = session('userinfo');
$plug = D('RetailPlug')->getRewardAccess($user['merchantid']);
if ($plug) {
//红包插件能用
$RewardModel = D('Reward');
$reward = $RewardModel->getReward($user['merchantid'], 2);
if (empty($reward['reward_list'])) {
$result['status'] = 0;
$result['msg'] = '该红包已失效';
$this->ajaxReturn($result);
}
if ($reward && $reward['lessmoney'] >= 0.01 && $reward['lessnumber']) {
//还剩余红包
$map['vid'] = $user['id'];
$map['reward_id'] = $reward['id'];
$all_count = M('reward_record')->where($map)->count();
if ($reward['is_everyday'] == 1) {
//获取用户当天领取记录
if ($reward['sum_max_time'] != 0 && $reward['day_max_time'] != 0) {
$map['_string'] = 'addtime <' . time() . ' AND addtime >' . strtotime(date('Y-m-d'));
$day_count = M('reward_record')->where($map)->count();
if ($all_count >= $reward['sum_max_time']) {
$result['status'] = 0;
$result['msg'] = '这次的红包领完啦,下次再来吧';
$this->ajaxReturn($result);
}
if ($day_count >= $reward['day_max_time']) {
$result['status'] = 0;
$result['msg'] = '今天红包领完啦,明天再来吧';
$this->ajaxReturn($result);
}
}
} else {
if ($all_count > 0) {
$result['status'] = 0;
$result['msg'] = '这次的红包领完啦,下次再来吧1';
$this->ajaxReturn($result);
}
}
$res = $this->getRandMoney($reward['reward_list']);
$update = $RewardModel->toSetDec(array('id' => $reward['id']), 'lessmoney', $res['money']);
$update = $RewardModel->toSetDec(array('id' => $reward['id']), 'lessnumber', 1);
$update = $RewardModel->toUpdate(array('id' => $reward['id']), array('reward_list' => $res['reward_list']));
$item1[$RechargeOrderModel::VID] = $user['id'];
$item1[$RechargeOrderModel::STATUS] = 1;
$item1[$RechargeOrderModel::PAY_ORDER_ID] = $payOrderId;
$item1[$RechargeOrderModel::MONEY] = $res['money'];
$item1[$RechargeOrderModel::ALL_MONEY] = $res['money'];
$item1[$RechargeOrderModel::SCENE_TYPE] = 5;//变动场景 1收银机 2商户后台 3门店后台 4小程序 5公众号
$item1[$RechargeOrderModel::TYPE] = 6;//变动类型 1充值 2消费 3编辑增加 4编辑减少 5退款增加 6红包充值 7大转盘充值 8礼品卡充值
$item1[$RechargeOrderModel::ADD_TIME] = time();
$item1[$RechargeOrderModel::REMARK] = '支付完成拆红包获得' . $res['money'] . '元';
$item1[$RechargeOrderModel::STATE] = 1;
$item1[$RechargeOrderModel::MERCHANT_ID] = $user['merchantid'];
$addId = $RechargeOrderModel->addOrder($item1);
if ($addId) {
$item['money'] = $res['money'];
$item['vid'] = $user['id'];
$item['merchantid'] = $user['merchantid'];
$item['storeid'] = $user['storeid'];
$item['addtime'] = time();
$item['reward_id'] = $reward['id'];
$item['recharge_order_id'] = $addId;
$item['pay_order_id'] = $payOrderId;
$add = M('reward_record')->add($item);
D('Vip')->toSetInc(array('id' => $user['id']), 'balance', $item['money']);
$result['status'] = 1;
$result['msg'] = '领取成功';
$result['money'] = $item['money'];
} else {
$result['status'] = 0;
$result['msg'] = '领取失败,再试一次';
}
} else {
$result['status'] = 0;
$result['msg'] = '这次的红包领完啦,下次再来吧';
}
} else {
$result['status'] = 0;
$result['msg'] = '红包不可用';
}
$this->ajaxReturn($result);
}
//大转盘页面
public function turntable()
{
$user = session('userinfo');
// dump($user);exit();
$map['merchantid'] = $user['merchantid'];
$map['status'] = 1;
$map['turntable_type'] = 1;
$map['start_time'] = ['elt',time()];
$map['end_time'] = ['egt',time()];
$turntable = M('turntable')->where($map)->find();
if (!empty($turntable)) {
$prize = M('turntable_prize')->where(array('turntableid' => $turntable['id']))->select();
} else {
header("Content-Type:text/html;charset=utf-8");
echo '活动已过期,请尽情期待下一次活动';
exit;
}
$this->assign('nr', $turntable);
$this->assign('turns', $prize);
$this->display();
}
//大转盘
public function findPrize()
{
$user = session('userinfo');
$merchantid = $user['merchantid'];
$map['merchantid'] = $merchantid;
$map['status'] = 1;
$map['start_time'] = ['elt',time()];
$map['end_time'] = ['egt',time()];
$turntable = M('turntable')->where($map)->find();
if (empty($turntable)) {
$result['status'] = 0;
$result['msg'] = '大转盘不可用';
$this->ajaxReturn($result);
}
$us['vid'] = $user['id'];
$us['turntableid'] = $turntable['id'];
$us['type'] = array('neq', 5);
if ($turntable['maxnum']) {
$user_max_num = M('turntable_use')->where($us)->count();//用户总中奖次数
if (intval($turntable['maxnum']) <= $user_max_num) {
$result['status'] = 0;
$result['msg'] = '您的抽奖次数已用完!';
$this->ajaxReturn($result);
}
}
if ($turntable['playnum']) {
unset($us['type']);
$user_play_num = M('turntable_use')->where($us)->count();//用户已抽奖次数
if (intval($turntable['playnum']) <= $user_play_num) {
$result['status'] = 0;
$result['msg'] = '您的抽奖次数已用光,请明日在来!';
$this->ajaxReturn($result);
}
}
$flag = true;
if ($turntable['daymaxnum']) {
//限制每日中奖次数
$us['_string'] = 'addtime <' . time() . ' AND addtime >' . strtotime(date('Y-m-d'));
$turntable_number = M('turntable_use')->where($us)->count();
if ($turntable_number >= intval($turntable['daymaxnum'])) {
$where['type'] = 5;
$where['turntableid'] = $turntable['id'];
$prize = M('turntable_prize')->where($where)->find();
if (empty($prize)) {
$result['status'] = 0;
$result['msg'] = '您的抽奖次数已用光,请明日在来!';
$this->ajaxReturn($result);
}
$flag = false;
$prize_id = $prize['id'];
}
}
if ($flag) {
$prize_arr = I('post.arr');
foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}
$prize_id = $this->getRand($arr); //根据概率获取奖项id
$where['id'] = $prize_id;
$prize = M('turntable_prize')->where($where)->find();
}
if ($prize['prizenum'] <= 0) {
$where['type'] = 5;
$where['turntableid'] = $turntable['id'];
$prize = M('turntable_prize')->where($where)->find();
if (empty($prize)) {
$result['status'] = 0;
$result['msg'] = '本次未抽中奖品,请重试';
$this->ajaxReturn($result);
}
$flag = false;
$prize_id = $prize['id'];
}
$data['id'] = $prize_id;
$d['vid'] = $user['id'];
$d['addtime'] = time();
$d['merchantid'] = session('merchantid');
$d['storeid'] = session('storeid') ? session('storeid') : session('merchantid');
$d['turntable_prizeid'] = $prize_id;
$d['turntableid'] = $prize['turntableid'];
switch ($prize['type']) {
case 1:
//实物
$d['status'] = 0;
break;
case 2:
//积分
$d['status'] = 2;
$d['usetime'] = time();
$da['vid'] = $user['id'];
$da['type'] = 8;
$da['integral'] = $prize['integral'];
$da['addtime'] = time();
$da['storeid'] = $user['storeid'];
$da['remark'] = "大转盘抽奖获得" . $prize['integral'] . "积分";
$res = M('retail_integral_order')->add($da);
$map15['id'] = $prize_id;
$res1 = M('turntable_prize')->where($map15)->setDec('prizenum', 1);//奖品数量减少
$map1['id'] = $user['id'];
$M = M('retail_vip');
$M->id = $user['id'];
$M->integral = array('exp', 'integral+' . $prize['integral']);
$M->grade_integral = array('exp', 'grade_integral+' . $prize['integral']);
$M->save();
break;
case 3:
//会员卡金额
$d['status'] = 2;
$d['usetime'] = time();
$da['money'] = 0;
$da['all_money'] = $prize['money'];
$da['status'] = 1;
$da['type'] = 7;
$da['scene_type'] = 5;
$da['add_time'] = time();
$da['store_id'] = $user['storeid'];
$da['merchant_id'] = $user['merchantid'];
$da['vid'] = $user['id'];
$da['remark'] = "大转盘抽奖获得" . $prize['money'] . "元";
$res = M('recharge_order')->add($da);
$map15['id'] = $prize_id;
$res1 = M('turntable_prize')->where($map15)->setDec('prizenum', 1);
$M = M('retail_vip');
$M->id = $user['id'];
$M->balance = array('exp', 'balance+' . $prize['money']);
$M->save();
break;
}
M('turntable_use')->add($d);
$data['success'] = 1;
$this->ajaxReturn($data);
}
//领取奖品
public function getPrize()
{
$user = session('userinfo');
$prizeid = $_POST['prizeid'];
if ($prizeid) {
$code = $_POST['code'];
$where['id'] = $prizeid;
$turntableid = M('turntable_prize')->where($where)->getField('turntableid'); // 大转盘id
$where2['id'] = $turntableid;
$recode = M('turntable')->where($where2)->getField('prizecode'); // 核销码
if ($code == $recode) {
$res = M('turntable_prize')->where($where)->setDec('prizenum', 1);//实物在奖品领取之后数量才减少
$map['vid'] = $user['id'];
$map['turntable_prizeid'] = $prizeid;
$da['status'] = 1;
$da['usetime'] = time();
$res1 = M('turntable_use')->where($map)->save($da);
$data['res'] = $res;
$data['res1'] = $res1;
if ($res && $res1) {
$data['success'] = 1;
$data['msg'] = "恭喜您成功领取奖品";
} else {
$data['success'] = 0;
$data['msg'] = "系统出差啦<br>请重试";
}
} else {
$data['success'] = 0;
$data['msg'] = "核销码错误<br>请询问店员";
}
} else {
$data['success'] = 0;
$data['msg'] = "核销失败";
}
$this->ajaxReturn($data);
}
//支付成功大转盘页面
public function turntable_pay()
{
$bill_order_id = I('get.bill_order_id');
$BillModel = D('RetailBillOrder');
$user = session('userinfo');
$Order = $BillModel->getFind(array('id' => $bill_order_id));
if (empty($bill_order_id) || empty($Order)) {
$this->tipsMsg(0, '你访问的页面不存在');
} else {
$old = M('turntable_use')->where(array('pay_order_id' => $bill_order_id))->find();
if (!empty($old)) {
$result['status'] = 0;
$result['msg'] = '红包已经被领取了';
$this->ajaxReturn($result);
}
$map['merchantid'] = $user['merchantid'];
$map['status'] = 1;
$turntable = M('turntable')->where($map)->find();
if (!empty($turntable)) {
$prize = M('turntable_prize')->where(array('turntableid' => $turntable['id']))->select();
}
$this->assign('nr', $turntable);
$this->assign('turns', $prize);
$this->assign('id', $bill_order_id);
$this->display();
}
}
//支付成功之后参加大转盘活动接口
public function openTurntable()
{
$user = session('userinfo');
$bill_order_id = I('post.id');
if (empty($user) || empty($bill_order_id)) {
$data['status'] = 0;
$data['msg'] = '访问错误';
$this->ajaxReturn($data);
}
$BillModel = D('RetailBillOrder');
$merchant_id = session('merchant_id');
$Order = $BillModel->getFind(array('id' => $bill_order_id, 'merchant_id' => $merchant_id));
if (empty($bill_order_id) || empty($Order)) {
$data['status'] = 0;
$data['msg'] = '访问错误';
$this->ajaxReturn($data);
}
$old = M('turntable_use')->where(array('pay_order_id' => $bill_order_id))->find();
if (!empty($old)) {
$result['status'] = 0;
$result['msg'] = '抽奖机会已经被领取了';
$this->ajaxReturn($result);
}
$turntable = M('turntable')->where(array('merchantid' => $user['merchantid'], 'status' => 1))->find();
if ($turntable) {
$us['vid'] = $user['id'];
$us['turntableid'] = $turntable['id'];
$us['type'] = array('neq', 5);
if ($turntable['maxnum']) {
$user_max_num = M('turntable_use')->where($us)->count();//用户总中奖次数
if (intval($turntable['maxnum']) <= $user_max_num) {
$result['status'] = 0;
$result['msg'] = '您的抽奖机会已经用完了';
$this->ajaxReturn($result);
}
}
if ($turntable['playnum']) {
unset($us['type']);
$user_play_num = M('turntable_use')->where($us)->count();//用户已抽奖次数
if (intval($turntable['playnum']) <= $user_play_num) {
$result['status'] = 0;
$result['msg'] = '您的抽奖机会已经用完了';
$this->ajaxReturn($result);
}
}
if ($turntable['daymaxnum']) {
//限制每日中奖次数
$us['type'] = array('neq', 5);
$us['_string'] = 'addtime <' . time() . ' AND addtime >' . strtotime(date('Y-m-d'));
$turntable_number = M('turntable_use')->where($us)->count();
if ($turntable_number >= intval($turntable['daymaxnum'])) {
$where['type'] = 5;
$where['turntableid'] = $turntable['id'];
$prize = M('turntable_prize')->where($where)->find();
if (empty($prize)) {
$result['status'] = 0;
$result['msg'] = '您的抽奖机会已经用完了';
$this->ajaxReturn($result);
}
}
}
$prize_arr = I('post.arr');
foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}
$prize_id = $this->getRand($arr); //根据概率获取奖项id
$data['id'] = $prize_id;
$where['id'] = $prize_id;
$prize = M('turntable_prize')->where($where)->find();
if ($prize['prizenum'] <= 0) {
$where['type'] = 5;
$where['turntableid'] = $turntable['id'];
$prize = M('turntable_prize')->where($where)->find();
if (empty($prize)) {
$result['status'] = 0;
$result['msg'] = '本次未抽中奖品,请重试';
$this->ajaxReturn($result);
}
$flag = false;
$prize_id = $prize['id'];
}
$d['vid'] = $user['id'];
$d['addtime'] = time();
$d['merchantid'] = session('merchantid');
$d['storeid'] = session('storeid') ? session('storeid') : session('merchantid');
$d['turntable_prizeid'] = $prize_id;
$d['turntableid'] = $prize['turntableid'];
$d['pay_order_id'] = $bill_order_id;
switch ($prize['type']) {
case 1:
//实物
$d['status'] = 0;
break;
case 2:
//积分
$d['status'] = 2;
$d['usetime'] = time();
$da['vid'] = $user['id'];
$da['type'] = 8;
$da['integral'] = $prize['integral'];
$da['addtime'] = time();
$da['storeid'] = $user['storeid'];
$da['remark'] = "大转盘抽奖获得" . $prize['integral'] . "积分";
$res = M('retail_integral_order')->add($da);
$map15['id'] = $prize_id;
$res1 = M('turntable_prize')->where($map15)->setDec('prizenum', 1);//奖品数量减少
$map1['id'] = $user['id'];
$M = M('retail_vip');
$M->id = $user['id'];
$M->integral = array('exp', 'integral+' . $prize['integral']);
$M->grade_integral = array('exp', 'grade_integral+' . $prize['integral']);
$M->save();
// $updateOrder = $PayOrderModel->updateOrder(array('id' => $payOrderId), array('is_reward' => 1));
break;
case 3:
//会员卡金额
$d['status'] = 2;
$d['usetime'] = time();
$da['money'] = 0;
$da['all_money'] = $prize['money'];
$da['status'] = 1;
$da['type'] = 7;//1充值 2消费 3编辑增加 4编辑减少 5退款增加 6红包充值 7大转盘充值 8礼品卡充值
$da['scene_type'] = 5;//1收银机 2商户后台 3门店后台 4小程序 5公众号
$da['add_time'] = time();
$da['store_id'] = $user['storeid'];
$da['merchant_id'] = $user['merchantid'];
$da['vid'] = $user['id'];
$da['remark'] = "大转盘抽奖获得" . $prize['money'] . "元";
$res = M('recharge_order')->add($da);
$map15['id'] = $prize_id;
$res1 = M('turntable_prize')->where($map15)->setDec('prizenum', 1);
$M = M('retail_vip');
$M->id = $user['id'];
$M->balance = array('exp', 'balance+' . $prize['money']);
$M->save();
break;
}
$re = M('turntable_use')->add($d);
$data['success'] = 1;
} else {
$data['status'] = 0;
$data['msg'] = '大转盘不可用';
$this->ajaxReturn($data);
}
$this->ajaxReturn($data);
}
public function getRand($proArr)
{
$data = '';
$proSum = array_sum($proArr); //概率数组的总概率精度
foreach ($proArr as $k => $v) { //概率数组循环
$randNum = mt_rand(1, $proSum);
if ($randNum <= $v) {
$data = $k;
break;
} else {
$proSum -= $v;
}
}
unset($proArr);
return $data;
}
//获取红包随机数
public function getRandMoney_v1($min, $max, $lessmoney, $lessnumber)
{
/* 数量充足 */
if ($lessnumber != 1) {
$i = 1;
while ($i <= 30) {
$randmoney = mt_rand($min * 100, $max * 100) / 100;
/* 计算剩余平均值 */
$average = round(($lessmoney - $randmoney) / ($lessnumber - 1), 2);
print_r($randmoney);
print_r('----' . $average);
if ($average > $min && $average < $max) {
break;
}
$i++;
}
} else {
$randmoney = $lessmoney;
}
// print_r('----' . $randmoney);
die;
return $randmoney;
}
/* random_number(int $min int $max int $lessmoney int $lessnumber)
* 生成随机数
* @param $min 最小值
* @param $max 最大值
* @param $lessmoney 总值
* @param $lessnumber 总数
* @return array
* */
public function random_number($min, $max, $lessmoney, $lessnumber)
{
}
}