当前位置: 首页 > 知识库问答 >
问题:

仅记录用户的Fullcalendar数据

汪胤
2023-03-14
@RestController
class EventController {
    
    @Autowired
    private EventJpaRepository eventRepository;
    
    @RequestMapping(value="/allevents", method=RequestMethod.GET)
    public List<Event> events() {
        return eventRepository.findAll();
    }
    
    @RequestMapping(value="/events", method=RequestMethod.GET)
    public List<Event> getEventsInRange(@RequestParam(value = "start", required = true) String start, 
                        @RequestParam(value = "end", required = true) String end, @RequestParam(value = "title", required = true) String title) {
    Date startDate = null;
    Date endDate = null;
    SimpleDateFormat inputDateFormat=new SimpleDateFormat("yyyy-MM-dd");

    try {
        startDate = inputDateFormat.parse(start);
    } catch (ParseException e) {
        throw new BadDateFormatException("bad start date: " + start);
    }

    try {
        endDate = inputDateFormat.parse(end);
    } catch (ParseException e) {
        throw new BadDateFormatException("bad end date: " + end);
    }

    LocalDateTime startDateTime = LocalDateTime.ofInstant(startDate.toInstant(),
    ZoneId.systemDefault());

    LocalDateTime endDateTime = LocalDateTime.ofInstant(endDate.toInstant(),
    ZoneId.systemDefault());

    return eventRepository.findByDateBetween(startDateTime, endDateTime); 
    }
}
@Repository
interface EventJpaRepository extends JpaRepository<Event, Long> {
        
    @Query("select b from Event b where b.start >= ?1 and b.end <= ?2")
    public List<Event> findByDateBetween(LocalDateTime start, LocalDateTime end);
    
}
<script> 
    document.addEventListener('DOMContentLoaded', function() {
        var calendarEl = document.getElementById('calendar');
        var calendar = new FullCalendar.Calendar(calendarEl, {
            initialView : 'dayGridMonth',
            headerToolbar: {
                left: 'prev,next today',
                center: 'title',
                right: 'dayGridMonth,timeGridWeek,timeGridDay'
            },
            locale: 'it',
            editable : false,
            eventLimit : true, // allow "more" link when too many events
            events : {
                url : '/allevents',
                type : 'GET',
                error : function() {
                    alert('there was an error while fetching events!');
                },
            }
        });     
        calendar.render();
    });

    
</script>

共有1个答案

麹鸿煊
2023-03-14

您的代码缺少一些东西。现在,查询返回一个时间范围内的所有事件。要将其仅限于登录的用户,您需要将Doctor表与用户ID联接在查询中。由于不知道会话是如何存储的,也不知道Doctor表是什么样子,您的查询可能需要进行如下更新:

@Query("select b from Event b join Doctor d on b.doctor_id=d.id where b.doctorId = ?1 AND b.start >= ?2 and b.end <= ?3")
public List<Event> findByDoctorIdAndDateBetween(Long doctorId, LocalDateTime start, LocalDateTime end, String userId);

我还没有测试过,但这应该会让你朝着正确的方向前进。

编辑:对不起,我已经有一段时间没有写JPA了。我已经更新了上面的查询,您将需要一个

@OneToMany(mappedBy="doctorId")
List<Event> events;
@ManyToOne
Long doctorId
 类似资料:
  • 使用Firebase.auth(),如果身份验证状态没有改变,如何刷新/重新获取用户? 我有一个使用电话号码进行身份验证的用户。我向点击该链接的用户发送电子邮件验证链接。该链接验证用户电子邮件(更新记录),并显示一个“继续”按钮,该按钮(通过deeplink)返回到应用程序。回到应用后,我想从 Firebase 重新提取用户记录,以便查看用户电子邮件是否已通过验证。我该怎么做?

  • 我的提现记录 功能介绍:推广员获取收益即可申请提现。可选择发放或驳回。 如果你使用的是专业版,此功能则需要开通微信商户平台的企业付款到零钱。 步骤 【财务管理】→【提现管理】→【用户提现记录】。

  • 对用户的识别是构建产品用户画像以及后续分析的关键一步。 identify实现了对产品上注册用户的账号实名制。利用identify接口,您可以把用户的注册账号或其它ID作为对用户的唯一识别,更可以自定义您需要的用户属性完善用户画像。 图例即demo产品中”京北商城“对用户identify后的示例: 我们建议每一个接入诸葛io的客户可以identify你的用户,从而认识它的价值。 一、用户、用户属性

  • 问题内容: 以下是允许用户将数据存储到Firestore中的代码。问题是,登录到该应用程序的所有用户都可以查看上传的数据。我如何才能仅允许当前登录的用户仅存储其帐户的数据? 对于Firebase数据库,我使用以下代码(有效,但不适用于Firestore) FirebaseUser用户= FirebaseAuth.getInstance()。getCurrentUser(); 字符串userId =

  • 我正在使用FireBase实时数据库来设置一个简单的CRUD应用程序。 我正在设置规则,以便只有登录的用户才能写入请求部分。我一定是误会了奥特。uid。 在请求中,我设置了,但我无法写入数据。 我错过了什么?

  • 问题内容: 我想按用户ID显示数据库中的记录。这意味着工作人员必须输入工作人员ID和密码并提出新项目的请求,该请求将保存在数据库中。 该请求工作正常,但是在request.php页面之后,我想显示该工作人员在receive.php中订购的项目。我该怎么办?这是定义表的SQL: 这是receive.php的PHP代码: 我真的希望有人可以检查我的代码。提前致谢。 问题答案: 您可以通过设置会话来做到