shopxx4.0 shop++4.0 開發記錄
/*
* Copyright 2005-2015 shopxx.net. All rights reserved.
* Support: http://www.shopxx.net
* License: http://www.shopxx.net/license
*/
package net.shopxx.service;
import java.math.BigDecimal;
import java.util.List;
import net.shopxx.Page;
import net.shopxx.Pageable;
import net.shopxx.entity.Admin;
import net.shopxx.entity.DepositLog;
import net.shopxx.entity.Member;
import net.shopxx.entity.PointLog;
/**
* Service - 會員
*
* @author SHOP++ Team
* @version 4.0
*/
public interface MemberService extends BaseService<Member, Long> {
/**
* 判斷使用者名稱是否存在
*
* @param username
* 使用者名稱(忽略大小寫)
* @return 使用者名稱是否存在
*/
boolean usernameExists(String username);
/**
* 判斷使用者名稱是否禁用
*
* @param username
* 使用者名稱(忽略大小寫)
* @return 使用者名稱是否禁用
*/
boolean usernameDisabled(String username);
/**
* 判斷E-mail是否存在
*
* @param email
* E-mail(忽略大小寫)
* @return E-mail是否存在
*/
boolean emailExists(String email);
/**
* 判斷E-mail是否唯一
*
* @param previousEmail
* 修改前E-mail(忽略大小寫)
* @param currentEmail
* 當前E-mail(忽略大小寫)
* @return E-mail是否唯一
*/
boolean emailUnique(String previousEmail, String currentEmail);
/**
* 查詢會員
*
* @param loginPluginId
* 登入外掛ID
* @param openId
* openID
* @return 會員,若不存在則返回null
*/
Member find(String loginPluginId, String openId);
/**
* 根據使用者名稱查詢會員
*
* @param username
* 使用者名稱(忽略大小寫)
* @return 會員,若不存在則返回null
*/
Member findByUsername(String username);
/**
* 根據E-mail查詢會員
*
* @param email
* E-mail(忽略大小寫)
* @return 會員,若不存在則返回null
*/
List<Member> findListByEmail(String email);
/**
* 查詢會員分頁
*
* @param rankingType
* 排名型別
* @param pageable
* 分頁資訊
* @return 會員分頁
*/
Page<Member> findPage(Member.RankingType rankingType, Pageable pageable);
/**
* 判斷會員是否登入
*
* @return 會員是否登入
*/
boolean isAuthenticated();
/**
* 獲取當前登入會員
*
* @return 當前登入會員,若不存在則返回null
*/
Member getCurrent();
/**
* 獲取當前登入會員
*
* @param lock
* 是否鎖定
* @return 當前登入會員,若不存在則返回null
*/
Member getCurrent(boolean lock);
/**
* 獲取當前登入使用者名稱
*
* @return 當前登入使用者名稱,若不存在則返回null
*/
String getCurrentUsername();
/**
* 增加餘額
*
* @param member
* 會員
* @param amount
* 值
* @param type
* 型別
* @param operator
* 操作員
* @param memo
* 備註
*/
void addBalance(Member member, BigDecimal amount, DepositLog.Type type, Admin operator, String memo);
/**
* 增加積分
*
* @param member
* 會員
* @param amount
* 值
* @param type
* 型別
* @param operator
* 操作員
* @param memo
* 備註
*/
void addPoint(Member member, long amount, PointLog.Type type, Admin operator, String memo);
/**
* 增加消費金額
*
* @param member
* 會員
* @param amount
* 值
*/
void addAmount(Member member, BigDecimal amount);
}