package com.huiju.estateagents.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.huiju.estateagents.entity.TaChannel; import com.huiju.estateagents.entity.TaPerson; import com.huiju.estateagents.entity.TaPersonPositon; import com.huiju.estateagents.po.PersonPO; import org.apache.ibatis.annotations.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.Map; /** *
* 人员表 Mapper 接口 *
* 据说 1 男 2 女 * * @return */ @Select("select count(1) as sex_count from ta_person where org_id = #{org} AND person_type IN ('customer','drift','estate agent') and gender = #{gender}") Integer selectSexUser(@Param("org") Integer orgId, @Param("gender") Integer gender); /** * 城市比例 * * @param personType * @return */ @ResultType(Map.class) @Select("SELECT " + " a.city as city, " + " b.shortname AS name, " + " b.lng, " + " b.lat, " + " count(a.person_id) AS cityCount " + "FROM " + " ta_person a " + "inner JOIN td_city b " + "on a.city = b.id " + "WHERE " + " a.org_id = #{org} " + " AND a.person_type IN ('customer','drift','estate agent') " + "GROUP BY " + " a.city ") List> selectCityUser(@Param("org") Integer orgId); // ------------- 用户来源 start ------------ /** * 用户来源 的饼图 * * @param recommendPersonType * @return */ Integer selectUserSourcePie(@Param("org") Integer orgId, @Param("recommendPersonType") String recommendPersonType, @Param("personType") String personType); /** * 用户来源 柱状 * * @return */ List> selectUserSourceColumnar(@Param("org") Integer orgId, @Param("personType") String personType, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); /** * 用户来源 数据列表 */ List> selectUserSourceData(@Param("org") Integer orgId, @Param("personType") String personType, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); // ------------- 用户来源 end ------------ @Update("UPDATE ta_person SET ${field} = IFNULL(${field}, 0) + #{increment} WHERE person_id = #{newsId}") void setFieldNum(@Param("newsId") String newsId, @Param("field") String field, @Param("increment") int increment); IPage getPersonList(IPage page, @Param("personType") String personType, @Param("name") String name, @Param("phone") String phone, @Param("status") Integer status, @Param("buildingId") String buildingId, @Param("personTags") String personTags); /** * 渠道下的经纪人 * * @param pg * @param name * @param phone * @return */ IPage channelBrokerList(IPage pg, @Param("name") String name, @Param("phone") String phone, @Param("orgid") Integer orgid, @Param("channelId") Integer channelId); /** * 渠道邀请经纪人 * * @param pg * @param id * @return */ IPage InviteClientsList(IPage pg, @Param("id") String id); /** * 获取用户总积分 * * @param orgId * @return */ Integer sumPointsByOrgId(@Param("orgId") Integer orgId); //更新city拼音为cityId void upDatePersonCityToId(@Param("personId") String personId); /** * 判断置业顾问绑定状态 * * @return */ Integer judgeBindStatusByCondition(@Param("userId") Integer userId, @Param("orgId") Integer orgId, @Param("phone") String phone); IPage selectDriftCustomerPageList(IPage page, @Param("buildingId") String buildingId, @Param("orgId") Integer orgId, @Param("personEstateDrift") String personEstateDrift, @Param("sceneType") String sceneType); int selectFromNum(@Param("orgId") Integer orgId, @Param("personType") String personType); /** * 保存用户位置信息 * * @param record * @return */ Integer savePersonPosition(TaPersonPositon record); /** * 今日新增人数 * @param orgId * @return */ Integer selectTodayRecentlyCount(@Param("orgId") Integer orgId, @Param("nowDate") LocalDateTime nowDate); List> selectCityPerson(@Param("orgId") Integer orgId); }