package com.topsun.posclient.common.service; import java.math.BigDecimal; import com.topsun.posclient.common.POSException; import com.topsun.posclient.datamodel.CardRule; import com.topsun.posclient.datamodel.CashierModel; import com.topsun.posclient.datamodel.Invoice; import com.topsun.posclient.datamodel.Item; import com.topsun.posclient.datamodel.Material; import com.topsun.posclient.datamodel.Member; import com.topsun.posclient.datamodel.Shop; import com.topsun.posclient.datamodel.dto.CashierModeDTO; import com.topsun.posclient.datamodel.dto.GoldPriceDTO; import com.topsun.posclient.datamodel.dto.ItemDTO; import com.topsun.posclient.datamodel.dto.ShopDTO; import com.topsun.posclient.datamodel.dto.UserDTO; /** * 基础服务接口 * @author Dong * */ public interface IBaseService { /** * 获取用户数据 * @return * @throws Exception */ public UserDTO getUserData() throws Exception; /** * 根据ID获取用户数据 * @param userId * @return * @throws Exception */ public UserDTO getUserById(int userId) throws Exception; /** * 根据用户ID获取雇员名称 * @param userId 用户ID * @return * @throws Exception */ public String getEmployeeNameById(int userId) throws Exception; /** * 获取所有结算方式 * @return * @throws POSException */ public CashierModeDTO getAllCashierMode() throws POSException; /** * 根据ID获取结算方式名称 * @param payModeId * @return * @throws POSException */ public String getNameByPayModeId(int payModeId) throws POSException; /** * 根据ID获取结算方式 * @param payModeId 结算方式ID * @return * @throws POSException */ public CashierModel getCashierModelById(int payModeId) throws POSException; /** * 获取所有单品信息 * @return * @throws Exception */ public ItemDTO getAllItem() throws Exception; /** * 获取所有店铺信息 * @return * @throws Exception */ public ShopDTO getAllShop() throws Exception; /** * 根据ID获取店铺名称 * @param shopId 店铺ID * @return * @throws Exception */ public String getShopNameById(int shopId) throws Exception; /** * 根据ID获取店铺 * @param shopId 店铺ID * @return * @throws Exception */ public Shop getShopById(int shopId) throws Exception; /** * 根据ID获取单品名称 * @param itemId 单品ID * @return * @throws Exception */ public String getItemNameById(int itemId) throws Exception; /** * 根据用户ID获取店铺名称 * * @throws Exception */ public String getShopNameByUserId(int userId) throws POSException; /** * 根据款号(条形码)获取商品信息 * @param barCode * @return * @throws POSException */ public Item getItemByBarCode(String barCode) throws POSException; /** * 生成单据号 * * @param type * 单据类型 0 零售单据号 1 旧金单据号 * @return * @throws POSException */ public String createNo(int type) throws POSException; // /** // * 计算积分 // * 按物料类别进行判断,对应每个物料类别都有一个积分系数, // * 如普通会员黄金类别积分系数为0.5,即购买10000元黄金, // * 积分为5000分。金牌会员对应铂金类别积分系数为0.75, // * 即购买10000元铂金,积分为7500分。 // * @param material 物料 // * @return 积分值 // * @throws POSException // */ // public int calculatePoints(Material material)throws POSException; /** * 根据物料zu编号,获取实时金价 * @param mtartCode 物料组编码 * @return 实时金价 * @throws POSException */ public BigDecimal getGoldPriceByMtartCode(String mtartCode) throws POSException; /** * 获取所有实时金价 * @return * @throws POSException */ public GoldPriceDTO queryAllGoldPrice() throws POSException; /** * 根据物料组获取物料名称 * @param matkl 物料组 * @return * @throws POSException */ public String getNameByMatkl(String matkl) throws POSException; /** * 根据物料编码获取物料名称 * @param matkl 物料编码 * @return * @throws POSException */ public String getNameByMatnr(String matnr) throws POSException; /** * 根据物料编码获取物料对象 * @param matnrCode 物料编码 * @return 物料对象 * @throws POSException */ public Material getMaterialByMatnr(String matnrCode) throws POSException; /** * 根据物料编码获取物料组 * @param matnr 物料编码 * @return 物料组编码 * @throws POSException */ public String getMatklByMatnr(String matnr) throws POSException; /** * 根据卡号获取会员信息 * @param cardNo 卡号 * @return * @throws POSException */ public Member getMemberByCardNo(String cardNo) throws POSException; /** * 根据输入积分数获取兑换金额 * @param inputPoint 输入的积分数 * @return * @throws POSException */ public BigDecimal getAmountByPoint(BigDecimal inputPoint) throws POSException; /** * 根据卡类型获取CardRule对象 * @param cardType 卡类型 * @return CardRule对象 * @throws POSException */ public CardRule getCardRuleByCardType(String cardType) throws POSException; /** * 获取会员卡折扣值 * @param cardType * @param matkl * @return * @throws POSException */ public BigDecimal getVipDiscountByCardType(String cardType, String matkl) throws POSException; /** * 获取当前发票 * @return 发票号码 * @throws POSException 异常 */ public Invoice getInvoice()throws POSException; /** * 根据发票号码获取发票数据 * @param invoiceNum 发票号码 * @param inputInvoiceCode 发票代码 * @return 发票数据 * @throws POSException */ public Invoice getInvoiceByNum(String invoiceNum,String inputInvoiceCode)throws POSException; /** * 获取发票号码 * @return 发票号码 * @throws POSException 异常 */ public Invoice getInvoice(String invoiceNumber)throws POSException; /** * 删除发票号码 * @param invoiceNo 发票号码 * @throws POSException 异常信息 */ public void deleteInvoiceNumber(String invoiceNo)throws POSException; }