Files
juipphp/app/order/controller/TbRefund.php

192 lines
6.0 KiB
PHP
Raw Normal View History

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
}