package com.muchinfo.mtp3century.service;

import com.muchinfo.mtp3century.utils.AjaxResult;
import com.muchinfo.mtp3common.vo.PageResult;
import com.muchinfo.mtp3pojos.entity.Accountriskconfig;
import com.muchinfo.mtp3pojos.entity.Accounttradeconfig;
import com.muchinfo.mtp3pojos.vo.investor.InitInvestorTradeResult;
import com.muchinfo.mtp3pojos.vo.investor.PersonalizationDelParam;
import com.muchinfo.mtp3pojos.vo.organ.*;
import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryParam;
import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResult;

import javax.servlet.http.HttpServletRequest;

public interface IOrganService {
    PageResult<UserAccountRspResult> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request);

    AjaxResult<UserAccountDetailResult> queryDetail(Long areaId,Integer role, HttpServletRequest request);

    PageResult<TaAccountQueryResult> organtaaccount(TaAccountQueryParam param, HttpServletRequest request);

    PageResult<UserAccountSignlogResult> querySignlog(Long accountId, Integer querytype, Integer pageNum, Integer pageSize, HttpServletRequest request);

    AjaxResult resetPwd(Long accountid, HttpServletRequest request);

    PageResult<UserAccountOrgan2UserResult> queryorgan2User(Long userid, Integer pageNum, Integer pageSize, HttpServletRequest request);

    AjaxResult updateorgan2User(Long userid, Integer status, HttpServletRequest request);

    AjaxResult updatestatusbyautoid(Long autoid, Integer status, HttpServletRequest request);

    PageResult<UserAccountSelfsupportResult> queryselfsupport(UserAccountSelfsupportParam param, HttpServletRequest request);

    AjaxResult selfsupportresetPwd(Long loginid, HttpServletRequest request);

    AjaxResult lockAccount(Long loginid, Integer status, HttpServletRequest request);

    PageResult<UserAccountRspResult> queryrole(UserAccountRoleParam param, HttpServletRequest request);

    AjaxResult<UserAccountRoleDetailResult> queryroleDetail(String rolename, Long userid, HttpServletRequest request);

    AjaxResult del(Long areaid, Integer role, HttpServletRequest request);

    AjaxResult<OrganInitAddResult> initAdd(String role, HttpServletRequest request);

    AjaxResult roleadd(OrganRoleModifyParam vo, HttpServletRequest request);

    PageResult<MemberGoodsLimitResult> querymembergoodslimit(MemberGoodsLimitParam param, HttpServletRequest request);

    AjaxResult addlimit(MemberGoodsAddParam vo, HttpServletRequest request);

    AjaxResult dellimit(Integer autoid, HttpServletRequest request);

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

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

    AjaxResult addaccountriskconfig(AccountRiskConfigAddParam vo, HttpServletRequest request);

    AjaxResult editaccountriskconfig(AccountRiskConfigAddParam vo, HttpServletRequest request);

    AjaxResult delaccountriskconfig(Long accountid, HttpServletRequest request);

    AjaxResult editorgan(OrganAddSonOrganParam param, HttpServletRequest request);

    AjaxResult<AccountTradeConfigTreeVo> createTree(HttpServletRequest request);

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

    AjaxResult tradeConfigEdit(SupportTradeConfigAddParam param, HttpServletRequest request);

    AjaxResult tradeConfigDelete(PersonalizationDelParam param, HttpServletRequest request);

    AjaxResult<OrganInitAccountAddResult> loadSelectOption(PersonalizationDelParam param, HttpServletRequest request);

    AjaxResult tradeConfigAdd(SupportTradeConfigAddParam param, HttpServletRequest request);

    AjaxResult logout(Long userid, HttpServletRequest request);

    AjaxResult<InitInvestorTradeResult> initAccTrade(String searchName, HttpServletRequest request);

    AjaxResult<String> getOragnDefaultManager(Long userid, HttpServletRequest request);
}
