package com.ruoyi.user.service; import java.util.List; import com.ruoyi.user.domain.AccountAddress; import com.ruoyi.user.domain.AccountUser; import com.ruoyi.user.domain.vo.AccountUserDetailVo; import com.ruoyi.user.domain.vo.MemberOptionVo; import com.ruoyi.user.domain.vo.AccountUserInfoVo; /** * 会员用户 业务层 * * @author ruoyi */ public interface IAccountUserService { /** * 根据会员ID查询 */ public AccountUser selectAccountUserById(Long userId); /** * 根据手机号查询会员 */ public AccountUser selectAccountUserByPhone(String phone); /** * 查询会员列表 */ public List selectAccountUserList(AccountUser accountUser); /** * 校验用户名是否唯一 * * @return true 唯一,false 已存在 */ public boolean checkUsernameUnique(AccountUser accountUser); /** * 校验手机号是否唯一 */ public boolean checkPhoneUnique(AccountUser accountUser); /** * 新增会员(密码加密后落库) */ public int insertAccountUser(AccountUser accountUser); /** * 修改会员(密码为空则不改密码) */ public int updateAccountUser(AccountUser accountUser); /** * 批量逻辑删除会员 */ public int deleteAccountUserByIds(Long[] userIds); /** * 查询会员详情 * * 一次取回详情页各 Tab 所需数据:会员本体(含推荐人/供货人派生列)、 * 认证资料、收货地址、签署协议、云仓库存。 */ public AccountUserDetailVo selectAccountUserDetail(Long userId); /** * 修改推荐人/供货人关系(绑定时间由服务端决定,不取信前端传值) * * 指定新供货人时会校验其等级严格高于该会员,非法取值直接抛 ServiceException。 */ public int updateAccountUserRelation(AccountUser accountUser); /** * 搜索可指定为供货人的会员(等级严格高于该会员,最多 20 条) * * 供详情页「修改供货人」弹窗的下拉使用。与 updateAccountUserRelation 的校验同源, * 都取 AccountUser 里的等级顺序定义。 */ public List searchSupplierCandidates(Long userId, String keyword); /** * 修改账户状态 */ public int changeStatus(AccountUser accountUser); /** * 修改收货地址 * * 置为默认时须先清除同会员其它地址的默认标记,两条语句必须同事务。 */ public int updateAccountAddress(AccountAddress accountAddress); /** * 批量逻辑删除收货地址 */ public int deleteAccountAddressByIds(Long[] ids); /** * C端会员注册 * * 校验手机号未注册、推荐码有效后,生成唯一推荐码并落库(无密码)。 * * @param phone 手机号 * @param referralCode 推荐人本人的推荐码 * @return 注册成功后的会员信息(含生成的 userId 与 myReferralCode) */ public AccountUser registerMember(String phone, String referralCode); /** * 查询C端会员个人中心信息(昵称 / 头像 / 会员等级 / 收益汇总) * * @param userId 会员ID(取自登录态,非前端传入) * @return 会员信息展示对象;会员不存在时抛业务异常 */ public AccountUserInfoVo getAccountUserInfo(Long userId); }