Browse Source

小程序打卡-根据经纬度查询

lixuesong 3 năm trước cách đây
mục cha
commit
bd006b84a9

+ 19 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -2724,11 +2724,7 @@ public class ApiController {
 	public R getPointSignInfo(String longitude, String latitude) {
 		List<Map<String, Object>> mapList = new ArrayList<>();
 
-		LambdaQueryWrapper<WmDaHospital> lambdaQueryWrapper = Wrappers.lambdaQuery();
-		lambdaQueryWrapper.isNotNull(WmDaHospital::getLatitude);
-		lambdaQueryWrapper.eq(WmDaHospital::getDelFlag, "0");
-		lambdaQueryWrapper.eq(WmDaHospital::getEnableFlag, "0");
-
+		// 医院
 		WmDaHospital qWmDaHospital = new WmDaHospital();
 		qWmDaHospital.setLongitude(longitude);
 		qWmDaHospital.setLatitude(latitude);
@@ -2746,6 +2742,7 @@ public class ApiController {
 			}
 		}
 
+		// 商业公司
 		WmDaDistribution qwmDaDistribution = new WmDaDistribution();
 		qwmDaDistribution.setLatitude(latitude);
 		qwmDaDistribution.setLongitude(longitude);
@@ -2764,6 +2761,23 @@ public class ApiController {
 			}
 		}
 
+		// 药店
+		WmDaPharmacy qWmDaPharmacy = new WmDaPharmacy();
+		qWmDaPharmacy.setLatitude(latitude);
+		qWmDaPharmacy.setLongitude(longitude);
+		List<WmDaPharmacy> pharmacyList = wmDaPharmacyService.listByPoint(qWmDaPharmacy);
+		if (CollectionUtil.isNotEmpty(pharmacyList)) {
+			pharmacyList.forEach(wmDaPharmacy -> {
+				Map<String, Object> map = new HashMap<>();
+				map.put("signEntId", wmDaPharmacy.getId());
+				map.put("signEntName", wmDaPharmacy.getPharmacyName());
+				map.put("longitude", wmDaPharmacy.getLongitude());
+				map.put("latitude", wmDaPharmacy.getLatitude());
+				map.put("signEntType", "3");
+				mapList.add(map);
+			});
+		}
+
 		return R.ok(mapList);
 	}
 

+ 8 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmDaPharmacyMapper.java

@@ -20,6 +20,7 @@ package com.qunzhixinxi.hnqz.admin.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -34,6 +35,12 @@ public interface WmDaPharmacyMapper extends BaseMapper<WmDaPharmacy> {
 
 	List<WmDaPharmacy> slectByParam(String pharmacyName);
 
-
+	/**
+	 * 根据经纬度查询
+	 *
+	 * @param wmDaPharmacy
+	 * @return
+	 */
+	List<WmDaPharmacy> listByPoint(@Param("query") WmDaPharmacy wmDaPharmacy);
 
 }

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaPharmacyService.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,6 +36,14 @@ public interface WmDaPharmacyService extends IService<WmDaPharmacy> {
 
 	R updateByapproval(Map<String, String> map);
 
+	/**
+	 * 根据经纬度查询
+	 *
+	 * @param wmDaPharmacy
+	 * @return
+	 */
+	List<WmDaPharmacy> listByPoint(WmDaPharmacy wmDaPharmacy);
+
 	/**
 	 * 批量转换经纬度
 	 */

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaPharmacyServiceImpl.java

@@ -242,6 +242,17 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 		return R.ok();
 	}
 
+	/**
+	 * 根据经纬度查询
+	 *
+	 * @param wmDaPharmacy
+	 * @return
+	 */
+	@Override
+	public List<WmDaPharmacy> listByPoint(WmDaPharmacy wmDaPharmacy) {
+		return wmDaPharmacyMapper.listByPoint(wmDaPharmacy);
+	}
+
 	/**
 	 * 批量转换经纬度
 	 */

+ 8 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaPharmacyMapper.xml

@@ -49,7 +49,14 @@
 		<if test="pharmacyName != null and pharmacyName != ''">
 			AND wm_da_pharmacy.pharmacy_name= #{pharmacyName}
 		</if>
+	</select>
 
-
+	<select  id="listByPoint" resultMap="wmDaPharmacyMap">
+		SELECT
+			p.*,
+			(st_distance (point (p.longitude, p.latitude),point(#{query.longitude},#{query.latitude}) ) / 0.0111) AS distance
+		FROM wm_da_pharmacy p
+		where p.longitude is not null and p.latitude is not null and p.del_flag=0 and p.enable_flag=0
+		ORDER BY distance asc limit 10
 	</select>
 </mapper>