2019-09-06 23:53:10 +08:00

188 lines
6.9 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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']);
}
}
}
}
}