package com.muchinfo.mtp3century.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.muchinfo.mtp3century.utils.AjaxResult;
import com.muchinfo.mtp3common.vo.PageResult;
import com.muchinfo.mtp3pojos.entity.Accountriskconfig;
import com.muchinfo.mtp3pojos.entity.Riskratiotype;
import com.muchinfo.mtp3pojos.entity.Useraccount;
import com.muchinfo.mtp3pojos.entity.Usercancelapply;
import com.muchinfo.mtp3pojos.vo.investor.*;

import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author XKF
 * @since 2024-04-16
 */
public interface IUseraccountService extends IService<Useraccount> {

    PageResult<DealerQueryResult> queryOrganPage(DealerQueryParam dealerQueryParam, HttpServletRequest request);

    AjaxResult<DealerQueryDetailResult> initQueryDetail(DealerQueryDetailParam dealerQueryDetailParam, HttpServletRequest request);

    AjaxResult export(HttpServletRequest request);

    void addUserESignInfo(Long userid, Long memberuserid);

    PageResult<InvestorModifyResult> queryModifyPage(InvestorModifyParam param, HttpServletRequest request);

    AjaxResult<InvestorPersonalizationResult> accountQuery(Long goodsid, Long accountid, HttpServletRequest request);

    AjaxResult modifyAudit(InvestorModifyAuditParam param, HttpServletRequest request);

    AjaxResult investorEdit(DetailBeforeResult param, HttpServletRequest request) throws Exception;

    PageResult<InvestorPersonalizedResult> queryPersonalized(String groupname, Integer pageNum, Integer pageSize, HttpServletRequest request);

    AjaxResult<Riskratiotype> getRiskRatioTypeForMarketer(Integer customertype, Integer riskcontrolmode,HttpServletRequest request);

    AjaxResult addPersonalized(InvestorPersonalizedAddParam param, HttpServletRequest request);

    PageResult<InvestorPerDetailQueryResult> queryPersonalizedDetail(InvestorPerDetailQueryParam param, HttpServletRequest request);

    AjaxResult<Useraccount> queryInvestorForPer(Long usergroupid, HttpServletRequest request);

    AjaxResult addInvestorForPer(InvestorForPerAddParam param, HttpServletRequest request);

    AjaxResult delInvestorForPer(Long userid, HttpServletRequest request);

    AjaxResult delInvest(Long autoid, HttpServletRequest request);

    PageResult<AccountRiskConfigResult> queryAccountRiskConfig(AccountRiskConfigParam param, HttpServletRequest request);

    AjaxResult getTaaccountList(Long userid, HttpServletRequest request);

    AjaxResult addAccountRiskConfig(AccountRiskConfigAddParam param, HttpServletRequest request);

    AjaxResult<Accountriskconfig> view(Long accountid, HttpServletRequest request);

    AjaxResult deleteConfig(Long accountid, HttpServletRequest request);

    AjaxResult<UserGroupTreeResult> getTree(HttpServletRequest request);

    AjaxResult<InvestorInitPerAddResult> initGoodsAndBZ(Long usergroupid, Long marketid, Long goodsid, HttpServletRequest request);

    AjaxResult traderPersonAdd(InvestorPersonAddParam param, HttpServletRequest request);

    AjaxResult deleteTraderConfig(InvestorPersonDeleteParam param, HttpServletRequest request);

    AjaxResult<UserGroupTradeConfigVo> tradeConfigView(PersonalizationDelParam param, HttpServletRequest request);

    AjaxResult<AccountTradeConfigTreeVo> getAccTradeTree(HttpServletRequest request);

    AjaxResult<InvestorInitBZResult> initBZList(Long goodsid, HttpServletRequest request);

    PageResult<InvestorCancelApplyResult> usercancelapply(InvestorCancelApplyParam param, HttpServletRequest request);

    AjaxResult<Usercancelapply> cancelview(Long autoid, HttpServletRequest request);

    AjaxResult cancelaudit(Long autoid, Integer auditflag, String msg, HttpServletRequest request);

    AjaxResult<UserAccountDetailVo> getUserAccountDetail(Long userid, HttpServletRequest request);
}
