fix
Helius
2021-07-03 a77003cb09b1d4dabbf50f88e9354afca8042970
fix
3 files modified
18 ■■■■■ changed files
gc-order/src/main/java/com/xzx/gc/order/mapper/JhyInfoMapper.java 3 ●●●●● patch | view | raw | blame | history
gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java 10 ●●●●● patch | view | raw | blame | history
gc-order/src/main/resources/mapper/order/JhyInfoMapper.xml 5 ●●●●● patch | view | raw | blame | history
gc-order/src/main/java/com/xzx/gc/order/mapper/JhyInfoMapper.java
@@ -4,7 +4,10 @@
import com.xzx.gc.util.GcMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface JhyInfoMapper extends GcMapper<JhyInfo> {
    JhyInfo selectJhyInfoByUserId(@Param("userId") String userId);
    List<JhyInfo> selectJhyInfoListInAddressRange(@Param("addressId") Long addressId);
}
gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
@@ -1,6 +1,7 @@
package com.xzx.gc.order.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
@@ -59,17 +60,14 @@
    public void addJhyOrder(AddJhyOrderDto orderDto) {
        JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(orderDto.getUserId());
        if (jhyInfo == null) {
            throw new RestException(-3, "集物员不存在");
        }
        if (jhyInfo != null && JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
            throw new RestException(-3, "集货员不能下单");
        }
        AddressInfo addressInfo = addressMapper.selectByPrimaryKey(orderDto.getAddressId());
        double distance = LocationUtils.getDistance(Convert.toDouble(jhyInfo.getLon()), Convert.toDouble(jhyInfo.getLat()), Convert.toDouble(addressInfo.getLongitude()), Convert.toDouble(addressInfo.getLatitude()));
        if (distance > 500) {
        List<JhyInfo> jhyInfos = jhyInfoMapper.selectJhyInfoListInAddressRange(addressInfo.getAddressId());
        if (CollUtil.isEmpty(jhyInfos)) {
            throw new RestException(-3, "该区域暂无集物员");
        }
gc-order/src/main/resources/mapper/order/JhyInfoMapper.xml
@@ -6,4 +6,9 @@
        select * from xzx_jhy_info where user_id=#{userId}
    </select>
    <select id="selectJhyInfoListInAddressRange" resultType="com.xzx.gc.entity.JhyInfo">
        select * from xzx_jhy_info a
        where 500 > lat_lng_distance(a.lat, a.lon, (select latitude from xzx_user_address_info where address_id=#{addressId}), (select longitude from xzx_user_address_info where address_id=#{addressId}))*1000
    </select>
</mapper>