RiderDeviceController.java 1.45 KB
package com.diligrp.rider.controller;

import com.diligrp.rider.common.result.Result;
import com.diligrp.rider.dto.DeviceBindDTO;
import com.diligrp.rider.service.RiderDeviceService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * 骑手端推送设备绑定接口
 */
@RestController
@RequestMapping("/api/rider/device")
@RequiredArgsConstructor
public class RiderDeviceController {

    private final RiderDeviceService deviceService;

    /**
     * 登录后绑定 JPush registrationId
     */
    @PostMapping("/bind")
    public Result<Void> bind(@Valid @RequestBody DeviceBindDTO dto, HttpServletRequest request) {
        Long riderId = (Long) request.getAttribute("riderId");
        deviceService.bind(riderId, dto);
        return Result.success();
    }

    /**
     * 退出登录时解绑
     */
    @PostMapping("/unbind")
    public Result<Void> unbind(@RequestParam String registrationId, HttpServletRequest request) {
        Long riderId = (Long) request.getAttribute("riderId");
        deviceService.unbind(riderId, registrationId);
        return Result.success();
    }
}