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;
 | |
|     }
 | |
| }
 |