Index.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\model\ProductOrder;
  5. use fast\Asset;
  6. use app\common\model\LedgerTeacChangeModel;
  7. use app\common\model\LedgerWalletModel;
  8. use app\common\model\UserPledge;
  9. use fast\Random;
  10. /**
  11. * 首页接口
  12. */
  13. class Index extends Api
  14. {
  15. protected array $noNeedLogin = ['*'];
  16. private $loaded = false;
  17. private $data;
  18. //测试脚本
  19. public function task(UserPledge $userPledge, ProductOrder $productOrder, LedgerWalletModel $ledgerWalletModel) {
  20. //$rows = UserPledge::where('status', '=', 1)->select();
  21. $list = $userPledge::alias('a')
  22. ->join('product_pledge b', 'a.pledge_id = b.id', 'left')
  23. ->where('a.status', '>', 0)
  24. ->field('a.*,b.day_num')
  25. ->select();
  26. $i = 0;
  27. $time= time();
  28. $day = 86400;
  29. foreach ($list as $item) {
  30. if($item->status == 1) {
  31. //未接触收益
  32. $reta = bcdiv($item->day_num, $day, 6); //天数
  33. $inter = ($item->last_time == 0) ? $time - $item->create_time: $time - $item->last_time; //最后收取时间
  34. $total_inco = bcmul($reta, $inter, 6) * $item->num; //累计收益
  35. $item->last_time = $time; //收取时间
  36. $item->total_self= bcadd($total_inco, $item->total_self, 2); //累计收益
  37. $total = $total_inco; //累计收益
  38. }
  39. if($total > 0){
  40. //更新用户资产
  41. $ledgerWalletModel->changeWalletAccount($item->user_id, Asset::TEAC, $total, LedgerTeacChangeModel::Pledge, 0);
  42. }
  43. //修改详情订单状态
  44. $detail = json_decode($item['details'], true);
  45. $productOrder::where('status', 6)->whereIn('id', array_column($detail, 'id'))->setField('status', ProductOrder::Paid);
  46. //更新存储订单状态
  47. $item->last_time = $time;
  48. $item->status = 0; //关闭
  49. $item->save();
  50. $i++;
  51. }
  52. $this->success('ok:'. $i);
  53. }
  54. }