package com.fzm.mall.server.admin.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.mall.server.admin.order.model.OrderDetail;
import com.fzm.mall.server.admin.user.model.Asset;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 用户资产信息表 服务类
 * </p>
 *
 * @author fzm
 * @since 2021-04-12
 */
public interface IAssetService extends IService<Asset> {

    /**
     * 商品订单退款-积分还原，商品币还原
     * <p>
     * 审核通过：1.币：根据order_detail的coin和number，将user_asset对应的冻结数量frozen扣除，通过链上方法还给商家
     *         2.积分：根据order_info的amount，将积分还给买家
     * 审核不通过：
     *         1.币：根据order_detail的coin和number，将user_asset对应的冻结数量frozen扣除，加到可用资产amount
     *
     * @param uid
     * @param amount
     * @param merchantId
     * @param orderDetailList
     * @param isApproved
     */
    void integralDeduction(String oid, String uid, BigDecimal amount, String merchantId, List<OrderDetail> orderDetailList, Boolean isApproved);

    void refundCoinOnChain(int tableType, String tableId, String merchantId, String coin, String skuId, int number, String serialNo, String fromAddr, String toAddr);
}
