$user_id, 'pledge_id' => $pledge_id, 'product_id' => $product_id, 'details' => json_encode($product, JSON_UNESCAPED_UNICODE), 'day_num' => $day_num, 'end_time' => time() + config('pledge_end_time'), //结束时间 'num' => $num ]); } //所有有效质押订单的日产量X数量的和 public static function getCountByTimeTeac():int { $list = self::alias('a') ->join('product_pledge b','a.pledge_id = b.id','left') ->where('a.status', self::Ongoing) ->field('b.day_num,a.num') ->select(); $count = 0; foreach ($list as $item) { $count += bcmul($item['day_num'], $item['num'], 2); } return $count; } //获取用户组合存储数量 public static function getPledgeCount(int $user_id): int { return self::alias('a')->where('a.user_id', $user_id) ->join('product_pledge b','a.pledge_id = b.id','left') ->where('a.status', self::Ongoing)->where('b.type_id', ProductPopular::TypeGroup)->sum('num'); } //用户 public function users() { return $this->hasOne('UserModel', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0); } //低质押 public function pledges() { return $this->hasOne('ProductPledges', 'id', 'pledge_id', [], 'LEFT')->setEagerlyType(0); } public function getCreateTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } public function getUpdateTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['update_time']) ? $data['update_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } protected function setCreateTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } protected function setUpdateTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } }