haungfuli 3 år sedan
förälder
incheckning
91c73f9dab

+ 10 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/PublishTaskInfoController.java

@@ -96,6 +96,16 @@ public class PublishTaskInfoController {
         publishTaskInfoService.showHidden(publishTaskInfo.getId());
     }
 
+    /**
+     * 刷新
+     * @param publishTaskInfo
+     * @return
+     */
+    @PostMapping("/api/refresh")
+    public String refresh(@RequestBody PublishTaskInfo publishTaskInfo){
+        return publishTaskInfoService.refresh(publishTaskInfo);
+    }
+
     /**
      * 货源列表
      * @param publishTaskInfo
@@ -116,7 +126,6 @@ public class PublishTaskInfoController {
         return publishTaskInfoService.addOrder(publishTaskInfo);
     }
 
-
     /**
      * 审核
      * @param

+ 1 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CargoOwnerInfo.java

@@ -76,7 +76,7 @@ public class CargoOwnerInfo extends BaseModel<CargoOwnerInfo> {
     /**
      * 刷新次数
      */
-    private String refreshTimes;
+    private Long refreshTimes;
 
     @TableField(exist = false)
     private List<CargoOwnerCompInfo> cargoOwnerCompInfoList;

+ 1 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/exception/YExceptionEnum.java

@@ -40,6 +40,7 @@ public enum YExceptionEnum {
 	DRIVER_CAR_ERROR("ERROR005", "车牌号重复,不可添加!"),
 	COMPANY_NAME_ERROR("ERROR006", "企业名称重复,不可添加!"),
 	UNIFIED_SOCIAL_CREDIT_CODE_ERROR("ERROR007", "统一社会信用代码重复,不可添加!"),
+	REFRESH_TIMES_UPPER_LIMIT("ERROR008", "今日刷新次数已达上限!"),
 	;
 	@Getter
 	private String value;

+ 6 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IPublishTaskInfoService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page;
 import com.yh.saas.plugin.yiliangyiyun.entity.PublishTaskInfo;
 import com.baomidou.mybatisplus.service.IService;
 import com.yh.saas.plugin.yiliangyiyun.entity.view.GoodsSourceView;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -66,6 +67,11 @@ public interface IPublishTaskInfoService extends IService<PublishTaskInfo> {
      */
     void showHidden(String id);
 
+    /**
+     * 刷新
+     */
+    String refresh(PublishTaskInfo publishTaskInfo);
+
     /**
      * 货源列表
      *

+ 67 - 31
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PublishTaskInfoServiceImpl.java

@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.google.common.collect.Lists;
 import com.yh.saas.common.support.util.IdGenerator;
+import com.yh.saas.common.support.util.StringUtils;
+import com.yh.saas.plugin.yiliangyiyun.constant.NumberConstant;
 import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
 import com.yh.saas.plugin.yiliangyiyun.entity.*;
 import com.yh.saas.plugin.yiliangyiyun.entity.view.GoodsSourceView;
+import com.yh.saas.plugin.yiliangyiyun.exception.YException;
+import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
 import com.yh.saas.plugin.yiliangyiyun.mapper.PublishTaskInfoMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
@@ -149,38 +153,41 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
         //所有货源列表
         List<PublishTaskInfo> dataList1 = baseMapper.getAllListsByCondition(pageView);
             if (!CollectionUtils.isEmpty(dataList1)){
-                //查询发货地经纬度
-                for(int i = 0; i < dataList1.size(); i++){
-                    PublishTaskInfo publishTaskInfo1 = dataList1.get(i);
-                    //发货地经纬度
-                    double lng2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLongitude()));
-                    double lat2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLatitude()));
-                    //根据装货城市获取经纬度
-                    String str =  EntCoordUtil.getCoordinate(publishTaskInfo.getLoadingPlaceCity());
-                    String str1 = str.substring(0, str.indexOf(","));//经度
-                    String str2 = str.substring(str1.length()+1, str.length());//纬度
-                    //装货地经纬度
-                    double lng1 = Math.toRadians(Double.valueOf(str1));
-                    double lat1 = Math.toRadians(Double.valueOf(str2));
-                    // 纬度之差
-                    double a = lat1 - lat2;
-                    // 经度之差
-                    double b = lng1 - lng2;
-                    // 计算两点距离的公式
-                    double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
-                            Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
-                    // 弧长乘地球半径, 返回单位: 千米
-                    s =  s * EARTH_RADIUS;
-                    if (s <= 300){
-                        //货距小于300公里,放入周边信息列表
-                        publishTaskInfo1.setCargoDistance(Math.floor(s));
-                        publishTaskInfoList.add(publishTaskInfo1);
+                if(!StringUtils.isEmpty(publishTaskInfo.getLoadingPlaceCity())){
+                    //查询发货地经纬度
+                    for(int i = 0; i < dataList1.size(); i++){
+                        PublishTaskInfo publishTaskInfo1 = dataList1.get(i);
+                        //发货地经纬度
+                        double lng2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLongitude()));
+                        double lat2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLatitude()));
+                        //根据装货城市获取经纬度
+                        String str =  EntCoordUtil.getCoordinate(publishTaskInfo.getLoadingPlaceCity());
+                        String str1 = str.substring(0, str.indexOf(","));//经度
+                        String str2 = str.substring(str1.length()+1, str.length());//纬度
+                        //装货地经纬度
+                        double lng1 = Math.toRadians(Double.valueOf(str1));
+                        double lat1 = Math.toRadians(Double.valueOf(str2));
+                        // 纬度之差
+                        double a = lat1 - lat2;
+                        // 经度之差
+                        double b = lng1 - lng2;
+                        // 计算两点距离的公式
+                        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
+                                Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
+                        // 弧长乘地球半径, 返回单位: 千米
+                        s =  s * EARTH_RADIUS;
+                        if (s <= 300){
+                            //货距小于300公里,放入周边信息列表
+                            publishTaskInfo1.setCargoDistance(Math.floor(s));
+                            publishTaskInfoList.add(publishTaskInfo1);
+                        }
                     }
-                }
-                //按货距排序,倒序
-                publishTaskInfoList.sort(Comparator.comparing(PublishTaskInfo::getCargoDistance));
-                //新增周边信息列表
-                goodsSourceView.setPublishTaskInfoLists(publishTaskInfoList);
+                    //按货距排序,倒序
+                    publishTaskInfoList.sort(Comparator.comparing(PublishTaskInfo::getCargoDistance));
+                    //新增周边信息列表
+                    goodsSourceView.setPublishTaskInfoLists(publishTaskInfoList);
+                    }
+
             }
         //将货源对象放入货源列表
         goodsSourceViews.add(goodsSourceView);
@@ -324,6 +331,35 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
         }
     }
 
+    /**
+     * 刷新
+     * @param publishTaskInfo
+     * @return
+     */
+    @Override
+    public String refresh(PublishTaskInfo publishTaskInfo){
+        //查询发布任务
+        PublishTaskInfo publishTaskInfo1 = this.seeTask(publishTaskInfo.getId());
+        if(publishTaskInfo1!= null){
+            //将此发布任务刷新次数变为1
+            publishTaskInfo1.setRefreshTimes("1");
+            this.updateById(publishTaskInfo1);
+        }
+        //查询货主
+        CargoOwnerInfo cargoOwnerInfo = cargoOwnerInfoService.selectOne(new EntityWrapper<CargoOwnerInfo>()
+                .eq(CargoOwnerInfo.QueryFiles.COMMON_ID, publishTaskInfo.getCommonId())
+                .eq(CargoOwnerInfo.QueryFiles.DELETE_FLAG, NumberConstant.CONSTANT0));
+        if(cargoOwnerInfo.getRefreshTimes() < 3){
+            //如果货主今日刷新次数小于3次,次数+1
+            Long number = cargoOwnerInfo.getRefreshTimes() + 1;
+            cargoOwnerInfo.setRefreshTimes(number);
+            cargoOwnerInfoService.updateById(cargoOwnerInfo);
+        }else {
+            throw new YException(YExceptionEnum.REFRESH_TIMES_UPPER_LIMIT);
+        }
+        return "ok";
+    }
+
     /**
      * 抢单
      * @param publishTaskInfo

+ 1 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/PublishTaskInfoMapper.xml

@@ -52,6 +52,7 @@
         task_description as taskDescription,
         task_validity as taskValidity,
         car_model as carModel,
+        refresh_times as refreshTimes,
         status,
         create_date as createDate,
         update_date as updateDate