package com.ruoyi.system.api; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.AccountMember; import com.ruoyi.system.api.factory.RemoteAccountUserFallbackFactory; import com.ruoyi.system.api.model.AccountRegisterRequest; import com.ruoyi.system.api.model.AccountResetPasswordRequest; /** * C端会员服务(ruoyi-user) * * @author hugray */ @FeignClient(contextId = "remoteAccountUserService", value = ServiceNameConstants.USER_SERVICE, fallbackFactory = RemoteAccountUserFallbackFactory.class) public interface RemoteAccountUserService { /** * 通过手机号查询C端会员信息 * * @param phone 手机号 * @param source 请求来源 * @return 会员信息(不存在时 data 为空) */ @GetMapping("/member/info/{phone}") public R getMemberByPhone(@PathVariable("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 通过用户名查询C端会员信息(服务商端账号密码登录使用) * * 返回结果含 password 密文与 providerFlag,供认证服务校验密码与服务商身份。 * * @param userName 用户名 * @param source 请求来源 * @return 会员信息(不存在时 data 为空) */ @GetMapping("/member/info/username/{userName}") public R getMemberByUsername(@PathVariable("userName") String userName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 注册C端会员 * * @param request 注册请求(手机号、推荐码) * @param source 请求来源 * @return 注册成功后的会员信息 */ @PostMapping("/member/register") public R registerMember(@RequestBody AccountRegisterRequest request, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 重置C端会员密码(忘记密码) * * 认证服务侧已完成手机号、账号状态与验证码校验,此处仅按手机号落库新密码 * (用户服务内 BCrypt 加密,只更新 password 一列)。 * * @param request 重置请求(手机号、新密码) * @param source 请求来源 * @return 处理结果 */ @PostMapping("/member/password/reset") public R resetPassword(@RequestBody AccountResetPasswordRequest request, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); }