|
@@ -18,20 +18,20 @@ import java.util.List;
|
|
|
public interface PosStoreMapper extends BaseMapper<PosStore>
|
|
public interface PosStoreMapper extends BaseMapper<PosStore>
|
|
|
{
|
|
{
|
|
|
//按照距离查询推荐商家(dayang=打烊标记:state=1 或当前不在营业时段;打烊门店全局沉底,同组内按距离升序)
|
|
//按照距离查询推荐商家(dayang=打烊标记:state=1 或当前不在营业时段;打烊门店全局沉底,同组内按距离升序)
|
|
|
- @Select("SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000 ) as juli,(SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) as xxzt,(CASE WHEN pos_store.state = 1 THEN 1 WHEN EXISTS (SELECT 1 FROM operating_hours oh WHERE oh.md_id = pos_store.id AND oh.day_of_week = WEEKDAY(CURDATE()) + 1 AND oh.is_open = 1 AND TIME(oh.start_time) <= CURTIME() AND CURTIME() <= TIME(oh.end_time)) THEN 0 ELSE 1 END) as dayang FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} HAVING xxzt=0 ORDER BY dayang ASC, juli ASC limit #{page},20") //查询语句
|
|
|
|
|
|
|
+ @Select("<script>SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000 ) as juli,(SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) as xxzt,(CASE WHEN pos_store.state = 1 THEN 1 WHEN EXISTS (SELECT 1 FROM operating_hours oh WHERE oh.md_id = pos_store.id AND oh.day_of_week = WEEKDAY(CURDATE()) + 1 AND oh.is_open = 1 AND TIME(oh.start_time) <= CURTIME() AND CURTIME() <= TIME(oh.end_time)) THEN 0 ELSE 1 END) as dayang FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} HAVING xxzt=0<if test='juli != null'> AND juli <= #{juli}</if> ORDER BY dayang ASC, juli ASC limit #{page},20</script>") //查询语句;juli(千米)非空时只保留该距离内的门店,为空则不过滤
|
|
|
List<PosStore> getmdlist(@Param("longitude")BigDecimal longitude, @Param("latitude")BigDecimal latitude,@Param("page")Integer page,@Param("area")String area,@Param("juli")Integer juli); //反回结果
|
|
List<PosStore> getmdlist(@Param("longitude")BigDecimal longitude, @Param("latitude")BigDecimal latitude,@Param("page")Integer page,@Param("area")String area,@Param("juli")Integer juli); //反回结果
|
|
|
|
|
|
|
|
//按照分类距离查询分类商家
|
|
//按照分类距离查询分类商家
|
|
|
- @Select("SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000 ) as juli,(SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) as xxzt,(CASE WHEN pos_store.state = 1 THEN 1 WHEN EXISTS (SELECT 1 FROM operating_hours oh WHERE oh.md_id = pos_store.id AND oh.day_of_week = WEEKDAY(CURDATE()) + 1 AND oh.is_open = 1 AND TIME(oh.start_time) <= CURTIME() AND CURTIME() <= TIME(oh.end_time)) THEN 0 ELSE 1 END) as dayang FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} and FIND_IN_SET(#{sort},sort) > 0 HAVING xxzt=0 ORDER BY dayang ASC, juli ASC limit #{page},20") //查询语句
|
|
|
|
|
|
|
+ @Select("<script>SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000 ) as juli,(SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) as xxzt,(CASE WHEN pos_store.state = 1 THEN 1 WHEN EXISTS (SELECT 1 FROM operating_hours oh WHERE oh.md_id = pos_store.id AND oh.day_of_week = WEEKDAY(CURDATE()) + 1 AND oh.is_open = 1 AND TIME(oh.start_time) <= CURTIME() AND CURTIME() <= TIME(oh.end_time)) THEN 0 ELSE 1 END) as dayang FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} and FIND_IN_SET(#{sort},sort) > 0 HAVING xxzt=0<if test='juli != null'> AND juli <= #{juli}</if> ORDER BY dayang ASC, juli ASC limit #{page},20</script>") //查询语句;juli(千米)非空时只保留该距离内的门店,为空则不过滤
|
|
|
List<PosStore> getdaidiq(@Param("longitude")BigDecimal longitude, @Param("latitude")BigDecimal latitude,@Param("page")Integer page,@Param("area")String area,@Param("juli")Integer juli,@Param("sort")Integer sort); //反回结果
|
|
List<PosStore> getdaidiq(@Param("longitude")BigDecimal longitude, @Param("latitude")BigDecimal latitude,@Param("page")Integer page,@Param("area")String area,@Param("juli")Integer juli,@Param("sort")Integer sort); //反回结果
|
|
|
|
|
|
|
|
- /** 门店列表总数(条件与 getmdlist 一致,只返回条数;total 用于分页元数据,勿用当前页行数充当) */
|
|
|
|
|
- @Select("SELECT COUNT(*) FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} AND (SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) = 0")
|
|
|
|
|
- long getmdlistCount(@Param("area")String area);
|
|
|
|
|
|
|
+ /** 门店列表总数(条件与 getmdlist 一致,只返回条数;total 用于分页元数据,勿用当前页行数充当);juli(千米)非空时同样按距离过滤 */
|
|
|
|
|
+ @Select("<script>SELECT COUNT(*) FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} AND (SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) = 0<if test='juli != null'> AND (st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000) <= #{juli}</if></script>")
|
|
|
|
|
+ long getmdlistCount(@Param("longitude")BigDecimal longitude, @Param("latitude")BigDecimal latitude, @Param("area")String area, @Param("juli")Integer juli);
|
|
|
|
|
|
|
|
- /** 分类门店列表总数(条件与 getdaidiq 一致) */
|
|
|
|
|
- @Select("SELECT COUNT(*) FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} and FIND_IN_SET(#{sort},sort) > 0 AND (SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) = 0")
|
|
|
|
|
- long getdaidiqCount(@Param("area")String area,@Param("sort")Integer sort);
|
|
|
|
|
|
|
+ /** 分类门店列表总数(条件与 getdaidiq 一致);juli(千米)非空时同样按距离过滤 */
|
|
|
|
|
+ @Select("<script>SELECT COUNT(*) FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} and FIND_IN_SET(#{sort},sort) > 0 AND (SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) = 0<if test='juli != null'> AND (st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000) <= #{juli}</if></script>")
|
|
|
|
|
+ long getdaidiqCount(@Param("longitude")BigDecimal longitude, @Param("latitude")BigDecimal latitude, @Param("area")String area, @Param("sort")Integer sort, @Param("juli")Integer juli);
|
|
|
|
|
|
|
|
//按照服务类型距离查询分类商家
|
|
//按照服务类型距离查询分类商家
|
|
|
@Select("SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000 ) as juli,(SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) as xxzt FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} and server_type like #{server_type} HAVING xxzt=0 ORDER BY juli ASC limit #{page},20 ") //查询语句
|
|
@Select("SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000 ) as juli,(SELECT del_flag FROM info_user WHERE info_user.user_id = pos_store.user_id) as xxzt FROM pos_store WHERE del_flag='0' and off_shelf='0' and area like #{area} and server_type like #{server_type} HAVING xxzt=0 ORDER BY juli ASC limit #{page},20 ") //查询语句
|