| | |
| | | 'register_time_text', |
| | | 'activity_time_text', |
| | | 'status_text', |
| | | 'audit_status_text', |
| | | ]; |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 审核状态文本 |
| | | * @param $value |
| | | * @param $data |
| | | * @return string |
| | | */ |
| | | public function getAuditStatusTextAttr($value, $data) |
| | | { |
| | | $status = isset($data['audit_status']) ? $data['audit_status'] : 0; |
| | | $text = [0=>'待审核',10=> '已通过', 20=> '已驳回']; |
| | | return [ |
| | | 'status' => $status, |
| | | 'text' => $text[$status] ?? '待审核' |
| | | ]; |
| | | } |
| | | |
| | | /** |
| | | * 活动详情 |
| | | */ |
| | | public static function detail($activity_id) |
| | |
| | | ->limit($limit) |
| | | ->select(); |
| | | } |
| | | |
| | | /** |
| | | * 检查走访企业30天内是否已被走访 |
| | | * @param int $visit_supplier_id 被走访企业ID |
| | | * @param int $visit_supplier_name 被走访企业名称 |
| | | * @param int $exclude_activity_id 排除的活动ID(编辑时使用) |
| | | * @return array|bool 返回剩余天数或false |
| | | */ |
| | | public function checkVisitLimit($visit_supplier_id, $visit_supplier_name, $exclude_activity_id = 0) |
| | | { |
| | | // 查询30天内该分会是否走访过该企业 |
| | | $thirtyDaysAgo = time() - (30 * 24 * 3600); |
| | | |
| | | $query = $this |
| | | ->where('is_delete', '=', 0) |
| | | ->where('create_time', '>', $thirtyDaysAgo); |
| | | if ($visit_supplier_id!=0){ |
| | | $query = $query->where('visit_supplier_id', '=', $visit_supplier_id); |
| | | }elseif ($visit_supplier_name!=''){ |
| | | $query = $query->where('visit_supplier_name', '=', $visit_supplier_name); |
| | | } |
| | | // 如果是编辑操作,排除当前活动 |
| | | if ($exclude_activity_id > 0) { |
| | | $query = $query->where('activity_id', '<>', $exclude_activity_id); |
| | | } |
| | | |
| | | $recentVisit = $query->order('create_time', 'desc')->find(); |
| | | |
| | | if ($recentVisit) { |
| | | // 计算剩余天数 |
| | | $daysSinceVisit = floor((time() - strtotime($recentVisit['create_time'])) / (24 * 3600)); |
| | | $remainingDays = 30 - $daysSinceVisit; |
| | | return [ |
| | | 'visited' => true, |
| | | 'remaining_days' => max(0, $remainingDays), |
| | | 'last_visit_time' => $recentVisit['create_time'], |
| | | 'activity_id' => $recentVisit['activity_id'] |
| | | ]; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | } |