/**
* 砍价算法---自砍一刀
*/
public function self_cut(){
$openid =$this->openid;
$goods_id = Request::instance()->post('goods_id');
$selfInfo = $this->selfkjObj->where(['openid'=>$openid,'goods_id'=>$goods_id])->find();
//1.查询是否为自己砍过价
if ($selfInfo['is_kj']==1){
echo json_encode([
'status' => 0,
'message' => '已经为自己砍过价'
]);exit;
}else{
//2.查询已经砍了多少刀
$zhukan_count=$selfInfo['kj_num']-$selfInfo['shengyu_kj_num']; //
//3.查询一共可以砍多少刀
$goodskj_count=$selfInfo['kj_num']; //
//4.判断砍价金额是否还能再砍
//查询剩下还能砍的金额
$zhukan_sum=$selfInfo['goods_now_money']-$selfInfo['goods_final_money'];
if ($selfInfo['goods_now_money']==$selfInfo['goods_final_money']){
echo json_encode([
'status' => 2,
'message' => "该商品已被砍到底价啦"
]);exit;
}
//5.判断砍价次数是否还能再砍
if($selfInfo['shengyu_kj_num']==0){ //砍价的数量超过了并且不是不限
echo json_encode([
'status' => 1,
'message' => '此商品只能砍价'.$goodskj_count."次"
]);exit;
}
//6.算法算出来这一刀多少钱
$total=$selfInfo['goods_now_money']-$selfInfo['goods_final_money']; //砍价总额
$num=$selfInfo['shengyu_kj_num']; // 需要砍价人数
if($num>1){
$min=0.01; //每个人最少能收到10元
$safe_total = ($total - ($num-1) * $min)/($num-1);//随机安全上限
$total = mt_rand($min * 100, $safe_total * 100) / 100;
$total = sprintf("%.2f", $total); //砍掉的金额
}else{
$total = $selfInfo['goods_now_money']-$selfInfo['goods_final_money'];
}
//7.把砍价信息存入帮砍表并且更新自己的数据
//自砍表更新
$self['id']=$selfInfo['id'];
$self['goods_now_money']=$selfInfo['goods_now_money']-$total;
$self['shengyu_kj_num']=$selfInfo['shengyu_kj_num']-1;
$self['is_kj']=1;
$res1 = $this->selfkjObj->update($self);
//帮砍表添加
$help['self_id']= $self['id'];
$help['is_kj']= 1;
$help['openid'] = $openid;
$help['goods_id'] = $selfInfo['goods_id'] ;
$help['operation_id'] = $selfInfo['operation_id'];
$help['uid']= $selfInfo['uid'];
$help['nickname'] = $this->nickname;
$help['goods_now_money'] = $self['goods_now_money'];
$help['goods_kj_money']=$total;
$help['addtime']=time();
$res2 = $this->helpkjObj->insert($help);
if ($res1 && $res2){
echo json_encode([
'status' => 3,
'message' => "您为自己砍掉".$total."商品现在的价格为:".$help['goods_now_money']."还需要砍:".$self['shengyu_kj_num']."刀",
'kj_money'=>$total,
'shengyu_kj_num'=>$self['shengyu_kj_num'],
'goods_now_money'=> $help['goods_now_money'],
'self'=> base64_encode($selfInfo['id'])
]);exit;
}else{
echo json_encode([
'status' => 4,
'message' => "未知错误,砍价失败,请重试"
]);exit;
}
}
}
/**
* 砍价算法 --- 帮他砍价
*/
public function help_cut(){
$goods_id = input('goods_id');
$openid =$this->openid;
$self_id=input('self_id');
$selfInfo = $this->selfkjObj->where(['id'=>$self_id])->find();
$helpInfo = $this->helpkjObj->where(['openid'=>$openid,'self_id'=>$self_id])->find();
//1.查询是否为朋友砍过价
if ($helpInfo['is_kj']==1){
echo json_encode([
'status' => 0,
'message' => '您已经帮他砍过价啦'
]);exit;
}else{
//2.查询已经砍了多少刀
$zhukan_count=$selfInfo['kj_num']-$selfInfo['shengyu_kj_num']; //
//3.查询一共可以砍多少刀
$goodskj_count=$selfInfo['kj_num']; //
//4.判断砍价金额是否还能再砍
//查询剩下还能砍的金额
$zhukan_sum=$selfInfo['goods_now_money']-$selfInfo['goods_final_money'];
if ($selfInfo['goods_now_money']==$selfInfo['goods_final_money']){
echo json_encode([
'status' => 2,
'message' => "该商品已被砍到底价啦"
]);exit;
}
//5.判断砍价次数是否还能再砍
if($selfInfo['shengyu_kj_num']==0){ //砍价的数量超过了并且不是不限
echo json_encode([
'status' => 1,
'message' => '此商品只能砍价'.$goodskj_count."次"
]);exit;
}
//6.算法算出来这一刀多少钱
$total=$selfInfo['goods_now_money']-$selfInfo['goods_final_money']; //总额
$num=$selfInfo['shengyu_kj_num'];// 砍价人数
if($num>1){
$min=0.01;//每个人最少能收到10元
$safe_total = ($total - ($num-1) * $min)/($num-1);//随机安全上限
$total = mt_rand($min * 100, $safe_total * 100) / 100;
$total = sprintf("%.2f", $total); //砍掉的金额
}else{
$total = $selfInfo['goods_now_money']-$selfInfo['goods_final_money'];
}
//7.把砍价信息存入帮砍表并且更新主砍表的数据
//自砍表更新
$self['id']=$selfInfo['id'];
$self['goods_now_money']=$selfInfo['goods_now_money']-$total;
$self['shengyu_kj_num']=$selfInfo['shengyu_kj_num']-1;
$res1 = $this->selfkjObj->update($self);
//帮砍表添加
$help['self_id']= $self['id'];
$help['is_kj']= 1;
$help['openid'] = $openid;
$help['goods_id'] = $selfInfo['goods_id'] ;
$help['operation_id'] = $selfInfo['operation_id'];
$help['uid']= $selfInfo['uid'];
$help['nickname'] = $this->nickname;
$help['goods_now_money'] = $self['goods_now_money'];
$help['goods_kj_money']=$total;
$help['addtime']=time();
$res2 = $this->helpkjObj->insert($help);
if ($res1 && $res2){
echo json_encode([
'status' => 3,
'message' => "您帮朋友砍掉".$total."商品现在的价格为:".$help['goods_now_money']."还需要砍:".$self['shengyu_kj_num']."刀",
'kj_money'=>$total,
'shengyu_kj_num'=>$self['shengyu_kj_num'],
'goods_now_money'=> $help['goods_now_money']
]);exit;
}else{
echo json_encode([
'status' => 4,
'message' => "未知错误,砍价失败,请重试"
]);exit;
}
}
}