Many.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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\traits\ModelTrait;
  10. use crmeb\basic\BaseModel;
  11. /**
  12. * Class StoreCategory
  13. * @package app\admin\model\store
  14. */
  15. class Many extends BaseModel
  16. {
  17. /**
  18. * 数据表主键
  19. * @var string
  20. */
  21. protected $pk = 'id';
  22. /**
  23. * 模型名称
  24. * @var string
  25. */
  26. protected $name = 'many';
  27. use ModelTrait;
  28. protected $autoWriteTimestamp = true;
  29. public static function list($where)
  30. {
  31. $model = self::field('*')->order('sort DESC,id DESC');
  32. if ($where['name'])$model->where('name' , 'like', '%'.$where['name'],'%');
  33. $data['count'] = $model->count();
  34. if ($where['page'] && $where['limit']){
  35. $model->page($where['page'], $where['limit']);
  36. }else{
  37. $model->page(20, 1);
  38. }
  39. $list = $model->select()->toArray();
  40. foreach ($list as &$item){
  41. $item['add_time'] = date('Y-m-d H:i:s',$item['add_time']);
  42. $item['end_time'] = date('Y-m-d H:i:s',$item['end_time']);
  43. }
  44. $data['data'] = $list;
  45. return $data;
  46. }
  47. public static function fail()
  48. {
  49. $many = self::where('end_time', '<', time())->where('status', '=', 1)->select();//找到结束为完成的场次
  50. if ($many) {
  51. foreach ($many as $item)
  52. {
  53. $stage = [$item['stage'] - 3, $item['stage']];//指定期数
  54. $stages = [$item['stage'] - 2,$item['stage'] - 1];//指定期数
  55. $many_order = ManyOrder::where('many_id', $item['id'])->where('stage', 'in',$stage)->select();// 找到这期和三期前订单
  56. $order = ManyOrder::where('many_id', '=',$item['id'])->where('stage', 'in',$stages)->select()->toArray();// 找到这期和三期前中间两期订单
  57. if ($many_order){
  58. foreach ($many_order as $value){
  59. $user = User::where('uid', $value['uid'])->find();
  60. $user['purple_integral'] += $value['price'] * 1.01;// 返还
  61. $user->save();
  62. UserBill::income('众筹失败返还紫积分', $value['uid'], 'purple_integral', 'sbfh', $value['price'] * 1.01, 0,$user['purple_integral'], '众筹失败返还紫积分');
  63. }
  64. }
  65. if ($order){
  66. foreach ($order as $value){
  67. $user = User::where('uid', $value['uid'])->find();
  68. $user['purple_integral'] += $value['price'] * 0.7;// 返还紫积分
  69. $user['green_integral'] += $value['price'] * 0.3;// 返还绿积分
  70. $user['paper_ticket'] += $value['price'] * 0.3;// 返还百分之三十的文票
  71. $user['integral'] += $value['price'] * 0.3;// 返还百分之三十的商城积分
  72. $user->save();
  73. UserBill::income('众筹失败返还紫积分', $value['uid'], 'purple_integral', 'sbfh', $value['price'] * 0.7, 0,$user['purple_integral'], '众筹失败返还紫积分');
  74. UserBill::income('众筹失败返还绿积分', $value['uid'], 'green', 'sbfh', $value['price'] * 0.3, 0,$user['green_integral'], '众筹失败返还绿积分');
  75. UserBill::income('众筹失败返还文票', $value['uid'], 'paper_ticket', 'sbfh', $value['price'] * 0.3, 0,$user['paper_ticket'], '众筹失败返还文票');
  76. UserBill::income('众筹失败返还积分', $value['uid'], 'integral', 'sbfh', $value['price'] * 0.3, 0,$user['integral'], '众筹失败返还积分');
  77. }
  78. }
  79. ManyOrder::where('many_id', '=',$item['id'])->where('stage', 'in',[$item['stage'] - 3, $item['stage'], $item['stage'] - 2,$item['stage'] - 1])->update(['status' => 2]);
  80. ManyDiscipline::create(['many_id' => $item['id'], 'stage' => $item['stage']]);
  81. Many::where('id', $item['id'])->update(['status' => 0, 'suc' => 2]);
  82. }
  83. }
  84. }
  85. }