123 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								namespace app\api\logic;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Logic;
							 | 
						||
| 
								 | 
							
								use app\common\model\RechargeTemplate;
							 | 
						||
| 
								 | 
							
								use app\common\model\RechargeOrder;
							 | 
						||
| 
								 | 
							
								use app\common\server\ConfigServer;
							 | 
						||
| 
								 | 
							
								use app\common\enum\PayEnum;
							 | 
						||
| 
								 | 
							
								use think\facade\Db;
							 | 
						||
| 
								 | 
							
								use app\common\logic\AccountLogLogic;
							 | 
						||
| 
								 | 
							
								use app\common\model\AccountLog;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class RechargeLogic extends Logic
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public static function getTemplate(){
							 | 
						||
| 
								 | 
							
								        $list = RechargeTemplate::where(['del'=>0])
							 | 
						||
| 
								 | 
							
								            ->order('sort desc')
							 | 
						||
| 
								 | 
							
								            ->field('id,money,give_money,is_recommend')
							 | 
						||
| 
								 | 
							
								            ->select()
							 | 
						||
| 
								 | 
							
								            ->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($list as &$item){
							 | 
						||
| 
								 | 
							
								            $item['tips'] = '';
							 | 
						||
| 
								 | 
							
								            if($item['give_money'] > 0){
							 | 
						||
| 
								 | 
							
								                $item['tips'] = '充'.intval($item['money']).'赠送'.intval($item['give_money']).'元';
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return $list;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static function recharge($user_id,$client,$post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        try{
							 | 
						||
| 
								 | 
							
								            $give_growth  = ConfigServer::get('recharge', 'give_growth', 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //充值模板
							 | 
						||
| 
								 | 
							
								            if(isset($post['id'])){
							 | 
						||
| 
								 | 
							
								                $template = RechargeTemplate::where(['del'=>0,'id'=>$post['id']])
							 | 
						||
| 
								 | 
							
								                    ->field('id,money,give_money')
							 | 
						||
| 
								 | 
							
								                    ->findOrEmpty();
							 | 
						||
| 
								 | 
							
								                if($template->isEmpty()) {
							 | 
						||
| 
								 | 
							
								                    throw new \think\Exception('充值模板不存在');
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                $money = $template['money'];
							 | 
						||
| 
								 | 
							
								                $give_money = $template['give_money'];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }else{//自定义充值金额
							 | 
						||
| 
								 | 
							
								                $template = RechargeTemplate::where(['del'=>0,'money'=>$post['money']])
							 | 
						||
| 
								 | 
							
								                    ->field('id,money,give_money')
							 | 
						||
| 
								 | 
							
								                    ->findOrEmpty();
							 | 
						||
| 
								 | 
							
								                $money = $post['money'];
							 | 
						||
| 
								 | 
							
								                $give_money = 0;
							 | 
						||
| 
								 | 
							
								                if(!$template->isEmpty()){
							 | 
						||
| 
								 | 
							
								                    $money = $template['money'];
							 | 
						||
| 
								 | 
							
								                    $give_money = $template['give_money'];
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            //赠送的积分和成长值
							 | 
						||
| 
								 | 
							
								            $growth = $money * $give_growth;
							 | 
						||
| 
								 | 
							
								            $growth = $growth > 0 ? intval($growth) : 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $add_order = [
							 | 
						||
| 
								 | 
							
								                'user_id'       => $user_id,
							 | 
						||
| 
								 | 
							
								                'order_sn'      => createSn('recharge_order','order_sn'),
							 | 
						||
| 
								 | 
							
								                'order_amount'  => $money,
							 | 
						||
| 
								 | 
							
								                'order_source'  => $client,
							 | 
						||
| 
								 | 
							
								                'pay_status'    => PayEnum::UNPAID,    //待支付状态;
							 | 
						||
| 
								 | 
							
								                'pay_way'       => $post['pay_way'] ?? 1,
							 | 
						||
| 
								 | 
							
								                'template_id'   => $template['id'] ?? 0,
							 | 
						||
| 
								 | 
							
								                'give_money'    => $give_money,
							 | 
						||
| 
								 | 
							
								                'give_growth'   => $growth,
							 | 
						||
| 
								 | 
							
								                'create_time'   => time(),
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $id = Db::name('recharge_order')->insertGetId($add_order);
							 | 
						||
| 
								 | 
							
								            if($id){
							 | 
						||
| 
								 | 
							
								                return Db::name('recharge_order')->where(['id'=>$id])->field('id,order_sn,give_growth')->find();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return [];
							 | 
						||
| 
								 | 
							
								        }catch(\Exception $e) {
							 | 
						||
| 
								 | 
							
								            self::$error = $e->getMessage();
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static function rechargeRecord($get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $list = RechargeOrder::field('order_sn, order_amount, give_money, create_time')
							 | 
						||
| 
								 | 
							
								            ->where([
							 | 
						||
| 
								 | 
							
								                'user_id' => $get['user_id'],
							 | 
						||
| 
								 | 
							
								                'pay_status' => PayEnum::ISPAID, // 已支付的
							 | 
						||
| 
								 | 
							
								            ])
							 | 
						||
| 
								 | 
							
								            ->order('create_time', 'desc')
							 | 
						||
| 
								 | 
							
								            ->page($get['page_no'], $get['page_size'])
							 | 
						||
| 
								 | 
							
								            ->select()
							 | 
						||
| 
								 | 
							
								            ->toArray();
							 | 
						||
| 
								 | 
							
								        $count = RechargeOrder::where([
							 | 
						||
| 
								 | 
							
								                'user_id' => $get['user_id'],
							 | 
						||
| 
								 | 
							
								                'pay_status' => PayEnum::ISPAID
							 | 
						||
| 
								 | 
							
								            ])
							 | 
						||
| 
								 | 
							
								            ->count();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach($list as &$item) {
							 | 
						||
| 
								 | 
							
								            if($item['give_money'] > 0) {
							 | 
						||
| 
								 | 
							
								                $item['desc'] = '充值'. clearZero($item['order_amount']) . '赠送' . clearZero($item['give_money']);
							 | 
						||
| 
								 | 
							
								            }else{
							 | 
						||
| 
								 | 
							
								                $item['desc'] = '充值'. clearZero($item['order_amount']);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            $item['total'] = $item['order_amount'] + $item['give_money']; // 充值金额 + 赠送金额
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $result = [
							 | 
						||
| 
								 | 
							
								            'count' => $count,
							 | 
						||
| 
								 | 
							
								            'lists' => $list,
							 | 
						||
| 
								 | 
							
								            'more' =>  is_more($count, $get['page_no'], $get['page_size']),
							 | 
						||
| 
								 | 
							
								            'page_no' =>  $get['page_no'],
							 | 
						||
| 
								 | 
							
								            'page_size' =>  $get['page_size']
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $result;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |