|
@@ -41,11 +41,7 @@ class Notify extends Api
|
|
|
exit;
|
|
|
}
|
|
|
//你可以在此编写订单逻辑
|
|
|
-// $rs = $this->gold_notify_do($out_trade_no);
|
|
|
- $args = json_decode($info['args'], true);
|
|
|
- $rechargeM = new \app\common\model\Recharge();
|
|
|
- $rs = $rechargeM->goldpaysucc($out_trade_no, $args,1);
|
|
|
-
|
|
|
+ $rs = $this->gold_notify_do($out_trade_no);
|
|
|
|
|
|
if($rs === false){
|
|
|
//不论结果都应返回success
|
|
@@ -78,13 +74,103 @@ class Notify extends Api
|
|
|
}
|
|
|
|
|
|
//逻辑开始
|
|
|
+ $remark = $orderInfo['payment_class'] == 'alipay' ? '支付宝' : '微信';
|
|
|
$args = json_decode($orderInfo['args'],true);
|
|
|
- $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],'gold',$args['gold'],10, '金币充值','pay_order',$orderInfo['id']);
|
|
|
+ $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],0,'gold',$args['gold'],10, $remark.'金币充值','pay_order',$orderInfo['id'],1);
|
|
|
if($result['status']===false)
|
|
|
{
|
|
|
Db::rollback();
|
|
|
return false;
|
|
|
}
|
|
|
+ //若有上级,给上级返利
|
|
|
+ if ($args['intro_uid']) {
|
|
|
+ //获取返利比率
|
|
|
+
|
|
|
+ $type = 1;
|
|
|
+ if ($type == 1){
|
|
|
+ $intro_recharge_rebate_rate = 10;
|
|
|
+ }else{
|
|
|
+ $is_agent = Db::name('user')->where(['id' => $args['intro_uid']])->value('is_agent');
|
|
|
+ $intro_recharge_rebate_rate = $is_agent ? (int)config('site.h_intro_recharge_rebate_rate') : (int)config('site.intro_recharge_rebate_rate');
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($intro_recharge_rebate_rate > 0 && $intro_recharge_rebate_rate <= 100) {
|
|
|
+ //上级获得金额数量
|
|
|
+ $intro_uid_money = bcdiv(bcmul($args['money'],$intro_recharge_rebate_rate,2),100,2);
|
|
|
+ if ($intro_uid_money > 0) {
|
|
|
+ $intro_result = model('wallet')->lockChangeAccountRemain($args['intro_uid'],$args['user_id'],'money',$intro_uid_money,65,'邀请人充值奖励:'.$orderId,'pay_order',$order['id']);
|
|
|
+ if($intro_result['status']===false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //首充
|
|
|
+ $first_map = [
|
|
|
+ 'uid' => $args['user_id'],
|
|
|
+ ];
|
|
|
+ $first_check = Db::name('user_paygold_log')->where($first_map)->find();
|
|
|
+ if(empty($first_check)){
|
|
|
+
|
|
|
+ //首充日志
|
|
|
+ $first_map['createtime'] = time();
|
|
|
+ $first_log_id = Db::name('user_paygold_log')->insertGetId($first_map);
|
|
|
+ if(!$first_log_id){
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //送金币
|
|
|
+ if(isset($args['first_gold']) && $args['first_gold'] > 0){
|
|
|
+ $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],0,'gold',$args['first_gold'],14, $remark . '金币充值:'.$orderId,'pay_order',$order['id']);
|
|
|
+ if($result['status']===false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //送vip
|
|
|
+ if(isset($args['first_vipdays']) && $args['first_vipdays'] > 0){
|
|
|
+ $user_info = Db::name('user_wallet')->where('user_id',$args['user_id'])->lock(true)->find();
|
|
|
+ if($user_info['vip_endtime'] < time()){
|
|
|
+ //过期了
|
|
|
+ $vip_endtime = time() + (intval($args['first_vipdays']) * 86400);
|
|
|
+ }else{
|
|
|
+ //追加vip
|
|
|
+ $vip_endtime = $user_info['vip_endtime'] + (intval($args['first_vipdays']) * 86400);
|
|
|
+ }
|
|
|
+ $result = Db::name('user_wallet')->where('user_id',$args['user_id'])->update(['vip_endtime'=>$vip_endtime]);
|
|
|
+ if($result === false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //vip用户充值额外送金币
|
|
|
+ if(isset($args['vip_gold']) && $args['vip_gold'] > 0){
|
|
|
+ $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],0,'gold',$args['vip_gold'],101, $remark . '金币充值赠送','pay_order',$order['id']);
|
|
|
+ if($result['status']===false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //用户充值额外送钻石
|
|
|
+ if(isset($args['jewel']) && $args['jewel'] > 0){
|
|
|
+ $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],0,'jewel',$args['jewel'],35, $remark . '金币充值赠送','pay_order',$order['id']);
|
|
|
+ if($result['status']===false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//逻辑结束
|
|
|
|
|
|
//状态
|
|
@@ -129,10 +215,7 @@ class Notify extends Api
|
|
|
exit;
|
|
|
}
|
|
|
//你可以在此编写订单逻辑
|
|
|
-// $rs = $this->vip_notify_do($out_trade_no);
|
|
|
- $args = json_decode($info['args'], true);
|
|
|
- $rechargeM = new \app\common\model\Recharge();
|
|
|
- $rs = $rechargeM->vippaysucc($out_trade_no, $args);
|
|
|
+ $rs = $this->vip_notify_do($out_trade_no);
|
|
|
|
|
|
if($rs === false){
|
|
|
//不论结果都应返回success
|
|
@@ -179,8 +262,15 @@ class Notify extends Api
|
|
|
}
|
|
|
$update_data = [
|
|
|
'vip_endtime'=>$vip_endtime,
|
|
|
+ 'vip_level' =>$args['vip_level'], //修改等级,同级不影响,向上立刻改,向下不允许
|
|
|
+ 'pay_money' => bcadd($user_info['pay_money'], $args['money'], 2) //pay_money第2处修改,$args['money']是vip配置表的人民币价格
|
|
|
];
|
|
|
$result = Db::name('user_wallet')->where('user_id',$orderInfo['user_id'])->update($update_data);
|
|
|
+ if($result === false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
//记录日志
|
|
|
$log_data = [
|
|
@@ -194,13 +284,15 @@ class Notify extends Api
|
|
|
];
|
|
|
Db::name('user_vip_log')->insertGetId($log_data);
|
|
|
|
|
|
- if($result === false)
|
|
|
- {
|
|
|
- Db::rollback();
|
|
|
- return false;
|
|
|
+ if ($args['gold_num'] > 0) {
|
|
|
+ //赠送金币
|
|
|
+ $wallet_rs = model('wallet')->lockChangeAccountRemain($orderInfo['user_id'], 0,'gold', $args['gold_num'], 17, '开通会员赠送金币');
|
|
|
+ if ($wallet_rs['status'] === false) {
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//逻辑结束
|
|
|
|
|
|
//状态
|