| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace app\api\controller\v1;
- use app\common\model\ScoreLogModel;
- use app\common\model\UserModel;
- use think\facade\Db;
- use think\Request;
- class Test
- {
- public function test(Request $request)
- {
- Db::startTrans();
- $lists = UserModel::field('id,money,score,profit_money,green_score')->select();
- $logs = [];
- foreach($lists as $item){
- $id = isset($item['id'])? $item['id'] : 0;
- $score = isset($item['score'])? $item['score'] : 0;
- $money = isset($item['money'])? $item['money'] : 0;
- $profit = isset($item['profit_money'])? $item['profit_money'] : 0;
- $greenScore = UserModel::where('id', $id)->value('green_score');
- $newGreenScore = $greenScore;
- if($money>0){
- echo "用户{$id} {$money} 余额转入<br>";
- $logs[] = [
- 'uid'=> $id,
- 'type'=> 12,
- 'score'=> $money,
- 'create_at'=> date('Y-m-d H:i:s'),
- 'from_id'=> 0,
- 'uid2'=> 0,
- 'state'=> 1,
- 'before_score'=> $newGreenScore,
- 'after_score'=> $newGreenScore+$money,
- 'remark'=> '余额转入'
- ];
- $newGreenScore += $money;
- }
- if($profit>0){
- echo "用户{$id} {$profit} 利润转入<br>";
- $logs[] = [
- 'uid'=> $id,
- 'type'=> 12,
- 'score'=> $profit,
- 'create_at'=> date('Y-m-d H:i:s'),
- 'from_id'=> 0,
- 'uid2'=> 0,
- 'state'=> 1,
- 'before_score'=> $newGreenScore,
- 'after_score'=> $newGreenScore+$profit,
- 'remark'=> '利润转入'
- ];
- $newGreenScore +=$profit;
- }
- if($newGreenScore>0 && !UserModel::where('id',$id)->inc('score',$newGreenScore)->update()){
- Db::rollback();
- return 'fail';
- }
- }
- if($logs){
- if(!ScoreLogModel::insertAll($logs)){
- Db::rollback();
- return 'fail';
- }
- if(!UserModel::where('id','>',0)->update(['money'=>0,'profit_money'=>0,'update_time'=>date('Y-m-d H:i:s')])){
- Db::rollback();
- return 'fail';
- }
- }
- Db::commit();
- return 'success';
- }
- }
|