ManyOrder.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. /**
  3. * @author: xaboy<365615158@qq.com>
  4. * @day: 2017/11/11
  5. */
  6. namespace app\models\many;
  7. use app\models\user\User;
  8. use app\models\user\UserBill;
  9. use crmeb\services\PHPExcelService;
  10. use crmeb\traits\ModelTrait;
  11. use crmeb\basic\BaseModel;
  12. /**
  13. * Class StoreCategory
  14. * @package app\admin\model\store
  15. */
  16. class ManyOrder extends BaseModel
  17. {
  18. /**
  19. * 数据表主键
  20. * @var string
  21. */
  22. protected $pk = 'id';
  23. /**
  24. * 模型名称
  25. * @var string
  26. */
  27. protected $name = 'many_order';
  28. use ModelTrait;
  29. protected $autoWriteTimestamp = true;
  30. public static function list($where)
  31. {
  32. $model = self::alias('a')
  33. ->order('a.id DESC')
  34. ->field('a.*,b.name,u.nickname')
  35. ->leftJoin('many b', 'b.id = a.many_id')
  36. ->leftJoin('user u', 'u.uid = a.uid')
  37. ->where('a.uid', $where['uid']);
  38. if ($where['status'] == 0 or $where['status'])$model->where('a.status' , '=', $where['status']);
  39. $data['count'] = $model->count();
  40. if ($where['page'] && $where['limit']){
  41. $model->page($where['page'], $where['limit']);
  42. }else{
  43. $model->page(20, 1);
  44. }
  45. $list = $model->select()->toArray();
  46. $data['data'] = $list;
  47. return $data;
  48. }
  49. /**
  50. * 众筹成功订单返还
  51. * @return void
  52. * @throws \think\db\exception\DataNotFoundException
  53. * @throws \think\db\exception\DbException
  54. * @throws \think\db\exception\ModelNotFoundException
  55. */
  56. public static function suc_return()
  57. {
  58. $order = self::where('is_return', 1)->where('status', 0)->select(); // 查询需要返还的订单
  59. if ($order){
  60. foreach ($order as $item)
  61. {
  62. if (strtotime($item['create_time'])+(86400*7) < time()){
  63. $user = User::where('uid', $item['uid'])->find();//用户
  64. $user1 = [];
  65. $user2 = [];
  66. if ($user['spread_uid'] > 0){
  67. $user1 = User::where('uid', $user['spread_uid'])->find();//用户
  68. if ($user1['spread_uid'] > 0) $user2 = User::where('uid', $user1['spread_uid'])->find();//用户
  69. }
  70. $purple_integral = round($item['price'] * 1.07, 2);// 奖励紫积分积分
  71. $business_integral = round($item['price'] * 0.03, 2);// 奖励商家积分
  72. $user['purple_integral'] += $purple_integral;
  73. $user['business_integral'] += $business_integral;
  74. if ($user1){
  75. // 直推收益的百分之十
  76. $sy1 = $item['price'] * 0.1;
  77. $user1['purple_integral'] += $sy1 * 0.7;
  78. $user1['business_integral'] += $sy1 * 0.3;
  79. }
  80. if ($user2){
  81. // 间推收益的百分之五
  82. $sy2 = $item['price'] * 0.05;
  83. $user2['purple_integral'] += $sy2 * 0.7;
  84. $user2['business_integral'] += $sy2 * 0.3;
  85. }
  86. self::where('id', $item['id'])->update(['status' => 1]);
  87. $user->save();
  88. UserBill::income('众筹成功奖励紫积分', $user['uid'], 'purple_integral', 'zccg', $purple_integral, $user['spread_uid'], $user['purple_integral'], '众筹成功返还紫积分');
  89. UserBill::income('众筹成功奖励商家积分', $user['uid'], 'business_integral', 'zccg', $business_integral, $user['spread_uid'], $user['business_integral'], '众筹成功返还商家积分');
  90. if ($user1){
  91. UserBill::income('直推奖励紫积分', $user1['uid'], 'purple_integral', 'zccg', $sy1*0.7, $user1['spread_uid'], $user1['purple_integral'], '直推奖励紫积分');
  92. UserBill::income('直推奖励商家积分', $user1['uid'], 'business_integral', 'zccg', $sy1*0.3, $user1['spread_uid'], $user1['business_integral'], '直推奖励商家积分');
  93. $user1->save();
  94. }
  95. if ($user2){
  96. UserBill::income('间推奖励紫积分', $user1['uid'], 'purple_integral', 'zccg', $sy2*0.7, $user2['spread_uid'], $user2['purple_integral'], '间推奖励紫积分');
  97. UserBill::income('间推奖励商家积分', $user1['uid'], 'business_integral', 'zccg', $sy2*0.3, $user2['spread_uid'], $user2['business_integral'], '间推奖励商家积分');
  98. $user2->save();
  99. }
  100. }
  101. }
  102. }
  103. }
  104. }