2020-10-14 20:20:49 +08:00
< ? php
/*
* @ Descripttion :
* @ version :
* @ Author : kangkang
* @ Date : 2020 - 10 - 13 19 : 52 : 37
2020-12-07 17:35:27 +08:00
* @ LastEditors : Please set LastEditors
* @ LastEditTime : 2020 - 12 - 07 17 : 16 : 18
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-12-07 17:35:27 +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-12-07 17:35:27 +08:00
$user_test = $userModel -> getListPage ( 'LoginCode in(' . implode ( ',' , $user_phone ) . ') OR Phone in(' . implode ( ',' , $user_phone ) . ')' , 'RestAmount,LoginCode,Phone' );
2020-10-22 17:32:20 +08:00
2020-12-07 17:35:27 +08:00
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-12-07 17:35:27 +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-12-07 17:35:27 +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-12-07 17:35:27 +08:00
$user_test = $userModel -> getListPage ( 'LoginCode in(' . implode ( ',' , $user_phone ) . ') OR Phone in(' . implode ( ',' , $user_phone ) . ')' , 'RestAmount,LoginCode,Phone' );
2020-10-22 17:32:20 +08:00
2020-12-07 17:35:27 +08:00
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-12-07 17:35:27 +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 ()
{
2020-12-07 17:35:27 +08:00
$data = json_decode ( file_get_contents ( " php://input " ), true )[ 'data' ];
2020-10-14 20:20:49 +08:00
$refund = new RefundMOdel ;
2020-10-16 17:45:04 +08:00
$userModel = new UserModel ;
2020-12-07 17:35:27 +08:00
$where = [];
$where_str = '' ;
if ( ! empty ( $data )) {
if ( ! empty ( $data [ 'Phone' ])) {
$where [ 'Phone' ] = [ 'like' , '%' . $data [ 'Phone' ] . '%' ];
}
if ( ! empty ( $data [ 'SellerNick' ])) {
$where [ 'SellerNick' ] = [ 'like' , '%' . $data [ 'SellerNick' ] . '%' ];
}
if ( ! empty ( $data [ 'handle_user' ])) {
$where [ 'handle_user' ] = [ 'like' , '%' . $data [ 'handle_user' ] . '%' ];
}
if ( ! empty ( $data [ 'Modified' ][ 'st' ])) {
$date1 = date ( 'Y-m-d' , strtotime ( $data [ 'Modified' ][ 'st' ]));
$date2 = date ( 'Y-m-d' , strtotime ( $data [ 'Modified' ][ 'et' ]));
$where_str = " Modified>=' " . $date1 . " ' and Modified<=' " . $date2 . " ' " ;
}
if ( $data [ 'status' ] != null ) {
$where [ 'status' ] = $data [ 'status' ];
}
2020-10-14 20:20:49 +08:00
}
2020-12-07 17:35:27 +08:00
$list = $refund -> search ( $where , '*' , 'id desc' , '10000' , $where_str );
2020-10-14 20:20:49 +08:00
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-12-07 17:35:27 +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 ;
2020-12-07 17:35:27 +08:00
$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-12-07 17:35:27 +08:00
/**
* @ description : 导出数据
* @ param { * }
* @ return { * }
*/
public function export ()
{
$data = $_GET [ 'data' ];
$refund = new RefundMOdel ;
$userModel = new UserModel ;
$where = [];
$where_str = '' ;
if ( ! empty ( $data )) {
if ( ! empty ( $data [ 'Phone' ])) {
$where [ 'Phone' ] = [ 'like' , '%' . $data [ 'Phone' ] . '%' ];
}
if ( ! empty ( $data [ 'SellerNick' ])) {
$where [ 'SellerNick' ] = [ 'like' , '%' . $data [ 'SellerNick' ] . '%' ];
}
if ( ! empty ( $data [ 'handle_user' ])) {
$where [ 'handle_user' ] = [ 'like' , '%' . $data [ 'handle_user' ] . '%' ];
}
if ( ! empty ( $data [ 'Modified' ][ 'st' ])) {
$date1 = date ( 'Y-m-d' , strtotime ( $data [ 'Modified' ][ 'st' ]));
$date2 = date ( 'Y-m-d' , strtotime ( $data [ 'Modified' ][ 'et' ]));
$where_str = " Modified>=' " . $date1 . " ' and Modified<=' " . $date2 . " ' " ;
}
if ( ! empty ( $data [ 'status' ]) && $data [ 'status' ] != null ) {
$where [ 'status' ] = $data [ 'status' ];
}
}
$list = $refund -> search ( $where , '*' , 'id desc' , '10000' , $where_str );
foreach ( $list as & $v ) {
$v [ 'status' ] = RefundEnum :: $refundStatus [ $v [ 'status' ]];
$v [ 'account' ] = $userModel -> getOne ([ 'LoginCode' => $v [ 'Phone' ]])[ 'RestAmount' ];
}
\exportToCsv ( 'test.csv' ,[ 'id' , '淘宝id' , '淘宝会员名' , '退款金额' , '子订单编号' , '交易编号' , '无关变量' , '无关变量' , '产品' , '申请时间' , '用户名' , '处理时间' , '备注' , '状态' , '扣除前余额' , '处理人' , '扣除后余额' ], $list );
}
2020-10-28 15:00:30 +08:00
2020-10-14 20:20:49 +08:00
}