Commit 9b167fca by 杨树贤

用户红包兑换账单的详情改成统计而不是直接取数据库

parent 5702eeaa
...@@ -3,75 +3,77 @@ ...@@ -3,75 +3,77 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Http\Filters\IntegralBillFilter; use App\Http\Filters\IntegralBillFilter;
use App\Http\Filters\IntegralFilter;
use App\Models\IntegralBill; use App\Models\IntegralBill;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
/** /**
* 用户红包获取流水 * 用户红包获取流水(非兑现)
* Class IntegralBillsController * Class IntegralBillsController
* @package App\Http\Controllers * @package App\Http\Controllers
*/ */
class IntegralBillsController extends Controller class IntegralBillsController extends Controller
{ {
/** /**
* 用户红包获取流水列表
* @param Request $request * @param Request $request
* @param IntegralBill $integralBill
* @param IntegralBillFilter $filter * @param IntegralBillFilter $filter
* @return array * @return array
*/ */
public function index(Request $request, IntegralBillFilter $filter) public function index(Request $request, IntegralBill $integralBill, IntegralBillFilter $filter)
{ {
$page = $request->has('page') ? $request->page : 1; $page = $request->has('page') ? $request->page : 1;
$page_size = $request->has('page_size') ? $request->page_size : 10; $pageSize = $request->has('page_size') ? $request->page_size : 10;
$bills = IntegralBill::with('integral')->filter($filter)->page($page, $page_size) $res = $integralBill->getIntegralBillList($page, $pageSize, $filter);
->orderBy('id', 'desc')
->get()->toArray();
$count = IntegralBill::filter($filter)->count();
return $this->Export(0, 'ok', ['data' => $bills, 'count' => $count]); return $this->Export(0, 'ok', $res);
} }
/** /**
* 创建红包账单 * 创建红包账单
* @param Request $request * @param Request $request
* @param IntegralBill $integralBill
* @return array * @return array
*/ */
public function create(Request $request) public function create(Request $request, IntegralBill $integralBill)
{ {
$res = DB::table('integral_bills')->insert([ $data = [
'user_id' => $request->user_id, 'user_id' => $request->user_id,
'amount' => $request->amount, 'amount' => $request->integral_amount,
'integral_id' => $request->integral_id, 'integral_id' => $request->integral_id,
'status' => 1, 'status' => 1,
'add_time' => time(), 'add_time' => time(),
]); ];
$res = $integralBill->createIntegralBill($data);
if ($res) { if ($res) {
return $this->Export(0, 'ok'); return $this->Export(0, 'ok');
} else { } else {
return $this->Export(ErrorCode(021, 5), '新增红包账单失败'); return $this->Export(ErrorCode(021, 5), '新增红包兑换记录失败');
} }
} }
/** /**
* 更新红包账单 * 更新红包账单
* @param Request $request * @param Request $request
* @param IntegralBill $integralBill
* @return array * @return array
*/ */
public function update(Request $request) public function update(Request $request, IntegralBill $integralBill)
{ {
$id = $request->id; $id = $request->id;
$res = DB::table('integral_bills')->where('id', $id) $data = [
->update([
'user_id' => $request->user_id, 'user_id' => $request->user_id,
'amount' => $request->amount, 'amount' => $request->amount,
'integral_id' => $request->integral_id, 'integral_id' => $request->integral_id,
'status' => 1, 'status' => 1,
'update_time' => time(), 'update_time' => time(),
]); ];
$res = $integralBill->updateIntegralBill($id, $data);
if ($res) { if ($res) {
return $this->Export(0, 'ok'); return $this->Export(0, 'ok');
} else { } else {
...@@ -82,13 +84,14 @@ class IntegralBillsController extends Controller ...@@ -82,13 +84,14 @@ class IntegralBillsController extends Controller
/** /**
* 删除红包账单 * 删除红包账单
* @param Request $request * @param Request $request
* @param IntegralBill $integralBill
* @return array * @return array
*/ */
public function destroy(Request $request) public function destroy(Request $request, IntegralBill $integralBill)
{ {
$ids = $request->ids; $ids = $request->ids;
$ids = explode(',', trim($ids)); $ids = explode(',', trim($ids));
$res = DB::table('integral_bills')->whereIn('id', $ids)->delete(); $res = $integralBill->deleteIntegralBill($ids);
if ($res) { if ($res) {
return $this->Export(0, 'ok'); return $this->Export(0, 'ok');
} else { } else {
......
...@@ -5,6 +5,7 @@ namespace App\Http\Controllers; ...@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Http\Filters\UserIntegralFilter; use App\Http\Filters\UserIntegralFilter;
use App\Models\IntegralBill;
use App\Models\UserIntegral; use App\Models\UserIntegral;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
...@@ -90,4 +91,37 @@ class UserIntegralsController extends Controller ...@@ -90,4 +91,37 @@ class UserIntegralsController extends Controller
return $this->Export(052, '批量修改用户是否可领取红包失败'); return $this->Export(052, '批量修改用户是否可领取红包失败');
} }
} }
/**
* 修改用户红包的已兑换值
* @param Request $request
* @return array
*/
public function updateExchangedIntegral(Request $request)
{
// DB::transaction(function () use ($request) {
$userId = $request->user_id;
$exchangeAmount = $request->exchange_amount;
$oldAmount = DB::table('user_integrals')->where('user_id', $userId)->value('exchanged_integral');
$res = DB::table('user_integrals')->where('user_id', $userId)->update([
'exchanged_integral' => $oldAmount + $exchangeAmount,
'update_time' => time(),
]);
if ($res) {
return $this->Export(0, 'ok');
} else {
return $this->Export(053, '批量修改用户是否可领取红包失败');
}
// });
}
public function statistics(Request $request, IntegralBill $integralBill)
{
$userId = $request->user_id;
$result = $integralBill->getUserIntegralStatistics($userId);
return $result;
}
} }
\ No newline at end of file
...@@ -4,13 +4,17 @@ ...@@ -4,13 +4,17 @@
namespace App\Models; namespace App\Models;
use App\Http\Filters\IntegralBillFilter;
use App\Http\Filters\QueryFilter; use App\Http\Filters\QueryFilter;
use http\Env\Request;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class IntegralBill extends Model class IntegralBill extends Model
{ {
public $timestamps = false; public $timestamps = false;
public function integral() public function integral()
{ {
return $this->belongsTo(Integral::class, 'integral_id', 'id'); return $this->belongsTo(Integral::class, 'integral_id', 'id');
...@@ -25,4 +29,67 @@ class IntegralBill extends Model ...@@ -25,4 +29,67 @@ class IntegralBill extends Model
{ {
return $filters->apply($query); return $filters->apply($query);
} }
//获取用户兑换红包列表
public function getIntegralBillList($page, $pageSize, $filter)
{
$request = new \Illuminate\Http\Request();
$bills = IntegralBill::with('integral')->filter($filter)->page($page, $pageSize)
->orderBy('id', 'desc')
->get()->toArray();
$count = IntegralBill::filter($filter)->count();
return ['data' => $bills, 'count' => $count];
}
public function createIntegralBill($data = [])
{
$res = DB::transaction(function () use ($data) {
DB::table('integral_bills')->insert($data);
});
return $res;
}
//更新用户红包兑换列表
public function updateIntegralBill($id, $data = [])
{
$res = DB::table('integral_bills')->where('id', $id)
->update($data);
return $res;
}
//删除
public function deleteIntegralBill($ids = [])
{
$res = DB::table('integral_bills')->whereIn('id', $ids)->delete();
return $res;
}
//获取用户红包统计信息
public function getUserIntegralStatistics($userId)
{
//一共获得的积分金额
$totalAmount = DB::table('integral_bills')
->leftJoin('integrals', 'integral_bills.integral_id', 'integrals.id')
->where('user_id', $userId)
->sum('amount');
//已经兑换的金额
$exchangedAmount = DB::table('user_exchanges')
->leftJoin('exchange_settings', 'user_exchanges.exchange_id', 'exchange_settings.id')
->where('user_id', $userId)
->sum('amount');
//剩余可兑换积分金额
$integral = DB::table('user_integrals')
->where('user_id', $userId)->value('integral');
return [
'total_amount' => $totalAmount,
'exchanged_amount' => $exchangedAmount,
'integral' => $integral,
];
}
} }
\ No newline at end of file
...@@ -45,6 +45,9 @@ $router->post('/user_integrals/info', 'UserIntegralsController@show'); ...@@ -45,6 +45,9 @@ $router->post('/user_integrals/info', 'UserIntegralsController@show');
$router->post('/user_integrals/list', 'UserIntegralsController@index'); $router->post('/user_integrals/list', 'UserIntegralsController@index');
$router->post('/user_integrals/update', 'UserIntegralsController@update'); $router->post('/user_integrals/update', 'UserIntegralsController@update');
$router->post('/user_integrals/batchUpdateStatus', 'UserIntegralsController@batchUpdateStatus'); $router->post('/user_integrals/batchUpdateStatus', 'UserIntegralsController@batchUpdateStatus');
$router->post('/user_integrals/updateExchangedIntegral', 'UserIntegralsController@updateExchangedIntegral');
$router->post('/user_integrals/statistics', 'UserIntegralsController@statistics');
//兑换配置 //兑换配置
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment