You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			188 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| namespace wstmart\common\model;
 | |
| use think\Db;
 | |
| /**
 | |
|  * ============================================================================
 | |
|  * 资金流水业务处理器
 | |
|  */
 | |
| class LogMoneys extends Base{
 | |
|      /**
 | |
|       * 获取列表
 | |
|       */
 | |
|       public function pageQuery($targetType,$targetId){
 | |
|       	  $type = (int)input('post.type',-1);
 | |
|           $where['targetType'] = (int)$targetType;
 | |
|           $where['targetId'] = (int)$targetId;
 | |
|           if(in_array($type,[0,1]))$where['moneyType'] = $type;
 | |
|           $page = $this->where($where)->order('id desc')->paginate()->toArray();
 | |
|           foreach ($page['Rows'] as $key => $v){
 | |
|           	  $page['Rows'][$key]['dataSrc'] = WSTLangMoneySrc($v['dataSrc']);
 | |
|           }
 | |
|           return $page;
 | |
|       }
 | |
| 
 | |
|       /**
 | |
|       * 获取商家质保金流水
 | |
|       */
 | |
|       public function pageDeposit($targetType,$targetId){
 | |
|           // $where['targetType'] = (int)$targetType;
 | |
|           $targetId = (int)$targetId;
 | |
|           $data = Db::name('shops_deposit_detail')->where(['shopId'=>$targetId])->order('payTime desc')->paginate()->toArray();
 | |
|           // dump($data);die;
 | |
|           foreach ($data['Rows'] as &$v){
 | |
|           	 $v['createTime'] = date('Y-m-d H:i:s',$v['payTime']);
 | |
|           	 $v['money'] = $v['cashDeposit'];
 | |
|           	 if($v['payType'] == 1){
 | |
|           	 	$v['dataSrc'] = '店铺认证通过时缴纳';
 | |
|           	 	$v['moneyType'] = 1;
 | |
|           	 }elseif($v['payType'] == 2){
 | |
|           	 	$v['dataSrc'] = '店铺订单中缴纳';
 | |
|           	 	$v['moneyType'] = 1;
 | |
|           	 }elseif($v['payType'] == 3){
 | |
|           	 	$v['dataSrc'] = '店铺充值缴纳';
 | |
|           	 	$v['moneyType'] = 1;
 | |
|           	 }elseif($v['payType'] == 4){
 | |
|           	 	$v['dataSrc'] = '店铺违规扣除';
 | |
|           	 	$v['moneyType'] = 0;
 | |
|           	 }
 | |
|           	 $v['remark'] = $v['dataSrc'];
 | |
|           }
 | |
| 
 | |
|           // dump($data);die;
 | |
|           return $data;
 | |
|       }
 | |
|       /**
 | |
|        * $lm['targetType'] = 1;//0:用户 1:商家
 | |
| 		$lm['targetId'] = $order->shopId;//用户/商家ID
 | |
| 		$lm['dataId'] = $order->orderId;
 | |
| 		$lm['dataSrc'] = 1;//1:交易订单 2:积分支出
 | |
| 		$lm['remark'] = '交易订单【'.$order->orderNo.'】退款剩余收入¥'.$backShopNum;
 | |
| 		$lm['moneyType'] = 1;//1:收入 0:支出
 | |
| 		$lm['money'] = $backShopNum;
 | |
| 		$lm['payType'] = 'qlgpay';	
 | |
| 		$lm['moneyName'] = 1;//1产品券2优惠券3旺旺券4现金券				
 | |
| 		$lm['createTime'] = $nowTime;
 | |
|        */
 | |
| 
 | |
|       public function addMoneyLog($targetType,$targetId,$dataId,$dataSrc,$remark,$moneyType,$money,$payType,$moneyName=0){
 | |
|       	$lm['targetType'] = $targetType;//0:用户 1:商家
 | |
| 		$lm['targetId'] = $targetId;//用户/商家ID
 | |
| 		$lm['dataId'] = $dataId;
 | |
| 		$lm['dataSrc'] = $dataSrc;//1:交易订单 2:积分支出
 | |
| 		$lm['remark'] = $remark;
 | |
| 		$lm['moneyType'] = $moneyType;//1:收入 0:支出
 | |
| 		$lm['money'] = $money;
 | |
| 		$lm['payType'] = $payType;	
 | |
| 		$lm['moneyName'] = $moneyName;		
 | |
|       	$lm['createTime'] = date('Y-m-d H:i:s');
 | |
|       	$this->insert($lm);
 | |
|       	if($moneyName && $moneyName <=3 ){
 | |
|       		$moneyNames = ['1'=>'productNum','2'=>'couponsNum','3'=>'wangNum'];
 | |
|       		if($targetType == 1){
 | |
|       			$userId = Db::name('shops')->where('shopId',$targetId)->value('userId');
 | |
|       		}else{
 | |
|       			$userId = $targetId;
 | |
|       		}
 | |
|       		if($moneyType == 1){
 | |
|       			return Db::name('users')->where(["userId"=>$userId])->setInc($moneyNames[$moneyName],$money);//增加
 | |
|       		}else{
 | |
|       			return Db::name('users')->where(["userId"=>$userId])->setDec($moneyNames[$moneyName],$money);//减少
 | |
|       		}      		
 | |
|       	}
 | |
|       	return true;
 | |
|       }
 | |
|       
 | |
|       public function complateRecharge($obj){
 | |
| 			$trade_no = $obj["trade_no"];
 | |
| 	      	$orderNo = $obj["out_trade_no"];
 | |
| 	      	$targetId = (int)$obj["targetId"];
 | |
| 	      	$targetType = (int)$obj["targetType"];
 | |
| 	      	$itemId = (int)$obj["itemId"];
 | |
| 	      	$payFrom = (int)$obj["payFrom"];
 | |
| 	      	$payMoney = (float)$obj["total_fee"];
 | |
| 	      	
 | |
| 	      	$log = $this->where(["tradeNo"=>$trade_no,"payType"=>$payFrom])->find();
 | |
| 	      	if(!empty($log)){
 | |
| 	      		return WSTReturn('已充值',-1);
 | |
| 	      	}
 | |
| 	      	Db::startTrans();
 | |
| 	      	try {
 | |
| 	      		$giveMoney = 0;
 | |
| 	      		if($itemId>0){
 | |
| 	      			$item = Db::name('charge_items')->where(["id"=>$itemId,"dataFlag"=>1])->field("chargeMoney,giveMoney")->find();
 | |
| 	      			$chargeMoney = $item["chargeMoney"];
 | |
| 	      			if($payMoney>=$chargeMoney){
 | |
| 	      				$giveMoney = $item["giveMoney"];
 | |
| 	      			}
 | |
| 	      		}
 | |
| 	      		$chargeMoney = $payMoney+$giveMoney;
 | |
| 	      		if($targetType==1){
 | |
| 	      			$data = array();
 | |
| 	      			$data["shopMoney"] = array("exp","shopMoney+".$chargeMoney);
 | |
| 	      			$data["rechargeMoney"] = array("exp","rechargeMoney+".$chargeMoney);
 | |
| 	      			model('shops')->where(["shopId"=>$targetId])->update($data);
 | |
| 	      		}else{
 | |
| 	      			$data = array();
 | |
| 	      			$data["userMoney"] = array("exp","userMoney+".$chargeMoney);
 | |
| 	      			$data["rechargeMoney"] = array("exp","rechargeMoney+".$chargeMoney);
 | |
| 	      			model('users')->where(["userId"=>$targetId])->update($data);
 | |
| 	      		}
 | |
| 	      		
 | |
| 	      		//创建一条充值流水记录
 | |
| 	      		$lm = [];
 | |
| 	      		$lm['targetType'] = $targetType;
 | |
| 	      		$lm['targetId'] = $targetId;
 | |
| 	      		$lm['dataId'] = $orderNo;
 | |
| 	      		$lm['dataSrc'] = 4;
 | |
| 	      		$lm['remark'] = '钱包充值 ¥'.$payMoney.(($giveMoney>0)?("元,送 ¥".$giveMoney." 元"):" 元");
 | |
| 	      		$lm['moneyType'] = 1;
 | |
| 	      		$lm['money'] = $chargeMoney;
 | |
| 	      		$lm['payType'] = $payFrom;
 | |
| 	      		$lm['tradeNo'] = $trade_no;
 | |
| 	      		$lm['createTime'] = date('Y-m-d H:i:s');
 | |
| 	      		model('LogMoneys')->save($lm);
 | |
| 	      		Db::commit();
 | |
| 	      		return WSTReturn('充值成功',1);
 | |
| 	      	} catch (Exception $e) {
 | |
| 	      		Db::rollback();errLog($e);
 | |
| 	      		return WSTReturn('充值失败',-1);
 | |
| 	      	}
 | |
|       }
 | |
| 
 | |
|       /**
 | |
|        * 新增记录
 | |
|        */
 | |
|       public function add($log){
 | |
|           $log['createTime'] = date('Y-m-d H:i:s');
 | |
| 		 //dump($log);
 | |
|           if($log['moneyType']==1){
 | |
|               if($log['targetType']==1){
 | |
| 				  if($log['payType']==='ect'){
 | |
| 					  ectLog($log['targetId'],$log['money'],12,'结算',['userECT'=>['exp','userECT+'.$log['money']]],1);
 | |
| 				  }else {
 | |
| 
 | |
| 					  Db::name('shops')->where(["shopId" => $log['targetId']])->setInc('shopMoney', $log['money']);
 | |
| 				  }
 | |
| 		      }else{
 | |
| 				  if($log['payType']==='ect'){
 | |
| //dump('gfdgfd');
 | |
| 					  ectLog($log['targetId'],$log['money'],13,'退款',['userECT'=>['exp','userECT+'.$log['money']]],1);
 | |
| 				  }else{
 | |
| 					  Db::name('users')->where(["userId"=>$log['targetId']])->setInc('userMoney',$log['money']);
 | |
| 				  }
 | |
| 
 | |
| 		      }
 | |
|           }else{
 | |
|               if($log['targetType']==1){
 | |
| 	      	      Db::name('shops')->where(["shopId"=>$log['targetId']])->setDec('shopMoney',$log['money']);
 | |
| 		      }else{
 | |
| 		      	if($log['payType']==='ect'){
 | |
| 					ectLog($log['targetId'],$log['money'],11,'购物',['userECT'=>['exp','userECT-'.$log['money']]],2);
 | |
| 		      	}else{
 | |
| 		      	  	Db::name('users')->where(["userId"=>$log['targetId']])->setDec('userMoney',$log['money']);
 | |
| 		      	}
 | |
| 		      }
 | |
|           }
 | |
|       }
 | |
| }
 |