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