package com.xhpc.user.service;

import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.common.domain.XhpcChargingPile;
import com.xhpc.user.domain.XhpcCommunity;
import com.xhpc.user.domain.XhpcCommunityPersonnel;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author yuyang
 * @date 2021/12/20 9:59
 */
public interface IXhpcCommunityService {


    /**
     * 社区组树列表
     *
     * @param name         桩名称
     * @return
     */
    List<Map<String, Object>> userList(HttpServletRequest request, String name);

    /**
     * 社区组树列表
     *
     * @param name         桩名称
     * @return
     */
    List<Map<String, Object>> list(HttpServletRequest request, String name);

    /**
     * 新增社区组树
     *
     * @param
     * @return
     */
    AjaxResult addCommunity(HttpServletRequest request,XhpcCommunity xhpcCommunity);

    /**
     * 删除社区组树
     */
    AjaxResult deleteCommunity(XhpcCommunity xhpcCommunity);

    /**
     * 编辑社区组树
     *
     * @param
     * @return
     */
    AjaxResult updateCommunity(XhpcCommunity xhpcCommunity);
    /**
     * 查询社区组
     *
     * @return
     */
    Map<String, Object> getCommunityById(XhpcCommunity xhpcCommunity);

    /**
     * 社区人员列表
     * @return
     */
    List<Map<String, Object>> communityPersonnelList(Long communityId,String account,String phone,Integer status);


    /**
     * 新增社区人员
     * @param
     * @return
     */
    AjaxResult addCommunityPersonnel(HttpServletRequest request,XhpcCommunityPersonnel xhpcCommunityPersonnel);

    /**
     * 查询社区人员
     *
     * @return
     */
    Map<String, Object> getCommunityPersonnelById(XhpcCommunityPersonnel xhpcCommunityPersonnel);

    /**
     * 编辑社区组树
     *
     * @param
     * @return
     */
    AjaxResult updateCommunityPersonnel(XhpcCommunityPersonnel xhpcCommunityPersonnel);

    /**
     * 删除社区人员
     */
    void deleteCommunityPersonnel(XhpcCommunityPersonnel xhpcCommunityPersonnel);

    /**
     * 社区人员状态改变
     */
    void updateCommunityPersonnelStatus(XhpcCommunityPersonnel xhpcCommunityPersonnel);

    /**
     * 充值
     */
    AjaxResult addRecharge(XhpcCommunityPersonnel xhpcCommunityPersonnel);

    /**
     * 根据用户id获取社区组
     */
    Map<String, Object> getCommunityPersonnelUserId(Long userId,String tenantId,Long chargingStationId);
}
