Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
杨树贤
/
ic_server_welfare
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9b167fca
authored
Aug 21, 2019
by
杨树贤
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
用户红包兑换账单的详情改成统计而不是直接取数据库
parent
5702eeaa
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
234 additions
and
124 deletions
app/Http/Controllers/IntegralBillsController.php
app/Http/Controllers/UserIntegralsController.php
app/Models/IntegralBill.php
routes/web.php
app/Http/Controllers/IntegralBillsController.php
View file @
9b167fca
<?php
namespace
App\Http\Controllers
;
use
App\Http\Filters\IntegralBillFilter
;
use
App\Models\IntegralBill
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\DB
;
/**
* 用户红包获取流水
* Class IntegralBillsController
* @package App\Http\Controllers
*/
class
IntegralBillsController
extends
Controller
{
/**
* @param Request $request
* @param IntegralBillFilter $filter
* @return array
*/
public
function
index
(
Request
$request
,
IntegralBillFilter
$filter
)
{
$page
=
$request
->
has
(
'page'
)
?
$request
->
page
:
1
;
$page_size
=
$request
->
has
(
'page_size'
)
?
$request
->
page_size
:
10
;
$bills
=
IntegralBill
::
with
(
'integral'
)
->
filter
(
$filter
)
->
page
(
$page
,
$page_size
)
->
orderBy
(
'id'
,
'desc'
)
->
get
()
->
toArray
();
$count
=
IntegralBill
::
filter
(
$filter
)
->
count
();
return
$this
->
Export
(
0
,
'ok'
,
[
'data'
=>
$bills
,
'count'
=>
$count
]);
}
/**
* 创建红包账单
* @param Request $request
* @return array
*/
public
function
create
(
Request
$request
)
{
$res
=
DB
::
table
(
'integral_bills'
)
->
insert
([
'user_id'
=>
$request
->
user_id
,
'amount'
=>
$request
->
amount
,
'integral_id'
=>
$request
->
integral_id
,
'status'
=>
1
,
'add_time'
=>
time
(),
]);
if
(
$res
)
{
return
$this
->
Export
(
0
,
'ok'
);
}
else
{
return
$this
->
Export
(
ErrorCode
(
021
,
5
),
'新增红包账单失败'
);
}
}
/**
* 更新红包账单
* @param Request $request
* @return array
*/
public
function
update
(
Request
$request
)
{
$id
=
$request
->
id
;
$res
=
DB
::
table
(
'integral_bills'
)
->
where
(
'id'
,
$id
)
->
update
([
'user_id'
=>
$request
->
user_id
,
'amount'
=>
$request
->
amount
,
'integral_id'
=>
$request
->
integral_id
,
'status'
=>
1
,
'update_time'
=>
time
(),
]);
if
(
$res
)
{
return
$this
->
Export
(
0
,
'ok'
);
}
else
{
return
$this
->
Export
(
ErrorCode
(
022
,
5
),
'更新红包账单失败'
);
}
}
/**
* 删除红包账单
* @param Request $request
* @return array
*/
public
function
destroy
(
Request
$request
)
{
$ids
=
$request
->
ids
;
$ids
=
explode
(
','
,
trim
(
$ids
));
$res
=
DB
::
table
(
'integral_bills'
)
->
whereIn
(
'id'
,
$ids
)
->
delete
();
if
(
$res
)
{
return
$this
->
Export
(
0
,
'ok'
);
}
else
{
return
$this
->
Export
(
ErrorCode
(
023
,
5
),
'删除红包账单失败'
);
}
}
<?php
namespace
App\Http\Controllers
;
use
App\Http\Filters\IntegralBillFilter
;
use
App\Http\Filters\IntegralFilter
;
use
App\Models\IntegralBill
;
use
Illuminate\Http\Request
;
/**
* 用户红包获取流水(非兑现)
* Class IntegralBillsController
* @package App\Http\Controllers
*/
class
IntegralBillsController
extends
Controller
{
/**
* 用户红包获取流水列表
* @param Request $request
* @param IntegralBill $integralBill
* @param IntegralBillFilter $filter
* @return array
*/
public
function
index
(
Request
$request
,
IntegralBill
$integralBill
,
IntegralBillFilter
$filter
)
{
$page
=
$request
->
has
(
'page'
)
?
$request
->
page
:
1
;
$pageSize
=
$request
->
has
(
'page_size'
)
?
$request
->
page_size
:
10
;
$res
=
$integralBill
->
getIntegralBillList
(
$page
,
$pageSize
,
$filter
);
return
$this
->
Export
(
0
,
'ok'
,
$res
);
}
/**
* 创建红包账单
* @param Request $request
* @param IntegralBill $integralBill
* @return array
*/
public
function
create
(
Request
$request
,
IntegralBill
$integralBill
)
{
$data
=
[
'user_id'
=>
$request
->
user_id
,
'amount'
=>
$request
->
integral_amount
,
'integral_id'
=>
$request
->
integral_id
,
'status'
=>
1
,
'add_time'
=>
time
(),
];
$res
=
$integralBill
->
createIntegralBill
(
$data
);
if
(
$res
)
{
return
$this
->
Export
(
0
,
'ok'
);
}
else
{
return
$this
->
Export
(
ErrorCode
(
021
,
5
),
'新增红包兑换记录失败'
);
}
}
/**
* 更新红包账单
* @param Request $request
* @param IntegralBill $integralBill
* @return array
*/
public
function
update
(
Request
$request
,
IntegralBill
$integralBill
)
{
$id
=
$request
->
id
;
$data
=
[
'user_id'
=>
$request
->
user_id
,
'amount'
=>
$request
->
amount
,
'integral_id'
=>
$request
->
integral_id
,
'status'
=>
1
,
'update_time'
=>
time
(),
];
$res
=
$integralBill
->
updateIntegralBill
(
$id
,
$data
);
if
(
$res
)
{
return
$this
->
Export
(
0
,
'ok'
);
}
else
{
return
$this
->
Export
(
ErrorCode
(
022
,
5
),
'更新红包账单失败'
);
}
}
/**
* 删除红包账单
* @param Request $request
* @param IntegralBill $integralBill
* @return array
*/
public
function
destroy
(
Request
$request
,
IntegralBill
$integralBill
)
{
$ids
=
$request
->
ids
;
$ids
=
explode
(
','
,
trim
(
$ids
));
$res
=
$integralBill
->
deleteIntegralBill
(
$ids
);
if
(
$res
)
{
return
$this
->
Export
(
0
,
'ok'
);
}
else
{
return
$this
->
Export
(
ErrorCode
(
023
,
5
),
'删除红包账单失败'
);
}
}
}
\ No newline at end of file
app/Http/Controllers/UserIntegralsController.php
View file @
9b167fca
...
...
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use
App\Http\Filters\UserIntegralFilter
;
use
App\Models\IntegralBill
;
use
App\Models\UserIntegral
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\DB
;
...
...
@@ -90,4 +91,37 @@ class UserIntegralsController extends Controller
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
app/Models/IntegralBill.php
View file @
9b167fca
<?php
namespace
App\Models
;
use
App\Http\Filters\QueryFilter
;
use
Illuminate\Database\Eloquent\Model
;
class
IntegralBill
extends
Model
{
public
$timestamps
=
false
;
public
function
integral
()
{
return
$this
->
belongsTo
(
Integral
::
class
,
'integral_id'
,
'id'
);
}
public
function
scopePage
(
$query
,
$page
=
1
,
$pageSize
=
10
)
{
return
$query
->
offset
((
$page
-
1
)
*
$pageSize
)
->
limit
(
$pageSize
);
}
public
function
scopeFilter
(
$query
,
QueryFilter
$filters
)
{
return
$filters
->
apply
(
$query
);
}
<?php
namespace
App\Models
;
use
App\Http\Filters\IntegralBillFilter
;
use
App\Http\Filters\QueryFilter
;
use
http\Env\Request
;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Support\Facades\DB
;
class
IntegralBill
extends
Model
{
public
$timestamps
=
false
;
public
function
integral
()
{
return
$this
->
belongsTo
(
Integral
::
class
,
'integral_id'
,
'id'
);
}
public
function
scopePage
(
$query
,
$page
=
1
,
$pageSize
=
10
)
{
return
$query
->
offset
((
$page
-
1
)
*
$pageSize
)
->
limit
(
$pageSize
);
}
public
function
scopeFilter
(
$query
,
QueryFilter
$filters
)
{
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
routes/web.php
View file @
9b167fca
...
...
@@ -45,6 +45,9 @@ $router->post('/user_integrals/info', 'UserIntegralsController@show');
$router
->
post
(
'/user_integrals/list'
,
'UserIntegralsController@index'
);
$router
->
post
(
'/user_integrals/update'
,
'UserIntegralsController@update'
);
$router
->
post
(
'/user_integrals/batchUpdateStatus'
,
'UserIntegralsController@batchUpdateStatus'
);
$router
->
post
(
'/user_integrals/updateExchangedIntegral'
,
'UserIntegralsController@updateExchangedIntegral'
);
$router
->
post
(
'/user_integrals/statistics'
,
'UserIntegralsController@statistics'
);
//兑换配置
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment