2020-10-14 20:20:49 +08:00
< ? php
/*
* @ Descripttion :
* @ version :
* @ Author : kangkang
* @ Date : 2020 - 10 - 13 19 : 52 : 37
* @ LastEditors : kangkang
2020-10-31 13:16:27 +08:00
* @ LastEditTime : 2020 - 10 - 30 19 : 15 : 21
2020-10-14 20:20:49 +08:00
*/
namespace app\order\controller ;
use app\order\model\TbRefund as RefundMOdel ;
2020-10-15 14:03:09 +08:00
use app\order\model\User as UserModel ;
2020-10-15 17:53:27 +08:00
use app\order\model\UserScore as ScoreModel ;
2020-10-14 20:20:49 +08:00
use enum\order\TbRefund as RefundEnum ;
use fastphp\base\Controller ;
class TbRefund extends Controller
{
2020-10-15 17:53:27 +08:00
public function refundList ()
{
2020-10-14 20:20:49 +08:00
$refund = new RefundMOdel ;
2020-10-16 17:45:04 +08:00
$userModel = new UserModel ;
2020-10-22 17:32:20 +08:00
$get_list = $refund -> getListPage ([], '*' , 'Modified desc' );
2020-10-22 09:48:52 +08:00
$user_phone = [];
$lists = [];
$list = [];
foreach ( $get_list as $v ) {
2020-10-14 20:20:49 +08:00
$v [ 'status' ] = RefundEnum :: $refundStatus [ $v [ 'status' ]];
2020-10-22 09:48:52 +08:00
if ( ! in_array ( $v [ 'Phone' ], $user_phone )) {
$user_phone [] = $v [ 'Phone' ];
}
$lists [] = $v ;
}
2020-10-22 17:32:20 +08:00
$user_test = $userModel -> getListPage ( 'LoginCode in(' . implode ( ',' , $user_phone ) . ') OR Phone in(' . implode ( ',' , $user_phone ) . ')' , 'RestAmount,LoginCode,Phone' );
foreach ( $lists as $key => $val ){
foreach ( $user_test as $k => $v ){
if ( $val [ 'Phone' ] == $v [ 'LoginCode' ] || $val [ 'Phone' ] == $v [ 'Phone' ]){
2020-10-22 09:48:52 +08:00
$val [ 'account' ] = $v [ 'RestAmount' ];
$list [] = $val ;
2020-10-22 17:32:20 +08:00
}
2020-10-22 09:48:52 +08:00
}
2020-10-14 20:20:49 +08:00
}
$count = $refund -> getCount ();
$data = [
'Code' => 10000 ,
'count' => $count [ 'count' ],
'data' => $list ,
];
echo json_encode ( $data );
}
public function pageList ()
{
if ( ! $_GET ) {
die ;
}
2020-10-28 15:00:30 +08:00
$page = ( $_GET [ 'page' ] - 1 ) * 50 ;
2020-10-14 20:20:49 +08:00
$refund = new RefundMOdel ;
2020-10-16 17:45:04 +08:00
$userModel = new UserModel ;
2020-10-28 15:00:30 +08:00
$get_list = $refund -> getListPage ([], '*' , 'Modified desc' , " $page ,50 " );
2020-10-22 09:48:52 +08:00
$user_phone = [];
$lists = [];
$list = [];
foreach ( $get_list as $v ) {
2020-10-14 20:20:49 +08:00
$v [ 'status' ] = RefundEnum :: $refundStatus [ $v [ 'status' ]];
2020-10-22 09:48:52 +08:00
if ( ! in_array ( $v [ 'Phone' ], $user_phone )) {
$user_phone [] = $v [ 'Phone' ];
}
$lists [] = $v ;
}
2020-10-22 17:32:20 +08:00
$user_test = $userModel -> getListPage ( 'LoginCode in(' . implode ( ',' , $user_phone ) . ') OR Phone in(' . implode ( ',' , $user_phone ) . ')' , 'RestAmount,LoginCode,Phone' );
foreach ( $lists as $key => $val ){
foreach ( $user_test as $k => $v ){
if ( $val [ 'Phone' ] == $v [ 'LoginCode' ] || $val [ 'Phone' ] == $v [ 'Phone' ]){
2020-10-22 09:48:52 +08:00
$val [ 'account' ] = $v [ 'RestAmount' ];
$list [] = $val ;
2020-10-22 17:32:20 +08:00
}
2020-10-22 09:48:52 +08:00
}
2020-10-14 20:20:49 +08:00
}
$data = [
'Code' => 10000 ,
'data' => $list ,
];
echo json_encode ( $data );
}
//获取记录
public function search ()
{
$Phone = json_decode ( file_get_contents ( " php://input " ), true )[ 'Phone' ];
$refund = new RefundMOdel ;
2020-10-16 17:45:04 +08:00
$userModel = new UserModel ;
2020-10-14 20:20:49 +08:00
if ( $Phone ) {
$list = $refund -> getListPage ([ 'Phone' => $Phone ], '*' , 'id desc' , '100' );
} else {
$list = $refund -> getListPage ();
$count = $refund -> getCount ();
}
foreach ( $list as & $v ) {
$v [ 'status' ] = RefundEnum :: $refundStatus [ $v [ 'status' ]];
2020-10-16 17:45:04 +08:00
$v [ 'account' ] = $userModel -> getOne ([ 'LoginCode' => $v [ 'Phone' ]])[ 'RestAmount' ];
2020-10-14 20:20:49 +08:00
}
$data = [
'Code' => 10000 ,
2020-10-15 17:53:27 +08:00
'count' => isset ( $count [ 'count' ]) ? $count [ 'count' ] : 0 ,
2020-10-14 20:20:49 +08:00
'data' => $list ,
];
echo json_encode ( $data );
}
/**
* @ description : 获取点击的那一条数据
* @ param { type }
* @ return { type }
*/
public function getOneInfo ()
{
if ( ! $_GET ) {
die ;
}
$id = $_GET [ 'id' ];
$refund = new RefundMOdel ;
$where = [ 'Id' => $id ];
$info = $refund -> getOne ( $where );
2020-10-16 17:45:04 +08:00
\result ( $info );
2020-10-14 20:20:49 +08:00
}
/**
* @ description : 处理退款
2020-10-15 14:03:09 +08:00
* @ param { type }
* @ return { type }
*
2020-10-14 20:20:49 +08:00
*/
public function handle ()
{
2020-10-15 14:03:09 +08:00
$data = json_decode ( file_get_contents ( " php://input " ), true )[ 'row' ];
2020-10-14 20:20:49 +08:00
$id = $data [ 'Id' ];
2020-10-15 14:03:09 +08:00
$user = $this -> userinfo ;
$refund = new RefundMOdel ;
$update_data [ 'handle_user' ] = $user [ 'LoginName' ];
2020-10-15 17:53:27 +08:00
$refund_info = $refund -> getOne ([ 'Id' => $id ]);
2020-10-15 14:03:09 +08:00
$userModel = new UserModel ;
2020-10-23 11:32:49 +08:00
$user_info = $userModel -> getOne ( 'LoginCode = ' . $refund_info [ 'Phone' ] . ' OR Phone=' . $refund_info [ 'Phone' ]);
2020-10-15 14:03:09 +08:00
//判断余额是否大于退款金额
$returnOk = $user_info [ 'RestAmount' ] - $refund_info [ " RefundFee " ];
2020-10-28 15:00:30 +08:00
2020-10-15 17:53:27 +08:00
if ( $returnOk < 0 ) {
2020-10-23 11:32:49 +08:00
\result ([], '余额不足' , 20000 );
2020-10-15 14:03:09 +08:00
} else {
2020-10-28 15:00:30 +08:00
$update_data [ 'f_balance' ] = $returnOk ;
2020-10-15 17:53:27 +08:00
if ( $refund -> updateOne ([ 'Id' => $id ], $update_data )) {
2020-10-28 15:00:30 +08:00
$user_update [ 'RestAmount' ] = $returnOk ;
$fff = $userModel -> updateOne ( " LoginCode = ' " . $refund_info [ 'Phone' ] . " ' OR Phone=' " . $refund_info [ 'Phone' ] . " ' " , $user_update );
2020-10-15 17:53:27 +08:00
//记录资金明细
$score_data = [
'UserId' => $user_info [ 'Id' ],
'ScoreType' => 4 ,
'ScoreTypeName' => '淘宝退款扣除' ,
'ScoreValue' => $refund_info [ " RefundFee " ],
'Remark' => $refund_info [ " Tid " ],
'UserName' => $refund_info [ 'Phone' ],
'OperateUserName' => $user [ 'LoginName' ],
'RestAmount1' => $user_info [ 'RestAmount' ],
'RestAmount2' => $returnOk ,
2020-10-22 09:48:52 +08:00
'CreateTime' => date ( 'Y-m-d H:i:s' , time ()),
'UpdateTime' => date ( 'Y-m-d H:i:s' , time ()),
2020-10-15 17:53:27 +08:00
'TenantId' => 0 ,
'DeleteTag' => 0 ,
];
$score = new ScoreModel ;
$score -> add ( $score_data );
2020-10-15 14:03:09 +08:00
}
}
$return = [
'Code' => 30000 ,
'msg' => '操作成功' ,
2020-10-31 13:16:27 +08:00
'balance' => $returnOk ,
2020-10-15 14:03:09 +08:00
];
echo json_encode ( $return );
2020-10-14 20:20:49 +08:00
}
2020-10-28 15:00:30 +08:00
2020-10-14 20:20:49 +08:00
}