Procházet zdrojové kódy

Merge remote-tracking branch 'origin/test' into test

wks před 2 roky
rodič
revize
1996094fbf

+ 7 - 8
src/main/java/com/ydtech/config/SwaggerConfig.java

@@ -52,7 +52,7 @@ public class SwaggerConfig {
     @Bean(value = "invApi")
     @Order(value = 4)
     public Docket invApi() {
-        return buildDocket("inv","inv财务");
+        return buildDocket("inv", "inv财务");
     }
 
     @Bean(value = "reportApi")
@@ -95,15 +95,16 @@ public class SwaggerConfig {
     @Bean(value = "demoApi")
     @Order(value = 10)
     public Docket baseDemoApi() {
-        return buildDocket("demo","示例演示");
+        return buildDocket("demo", "示例演示");
     }
 
     @Bean(value = "largescreenApi")
     @Order(value = 11)
     public Docket largescreenApi() {
-        return buildDocket("largescreen","大屏接口");
+        return buildDocket("largescreen", "大屏接口");
     }
 
+
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
                 .title("晋掌柜 API 文档")
@@ -158,8 +159,7 @@ public class SwaggerConfig {
     }
 
 
-
-    public Docket buildDocket(String basePackage){
+    public Docket buildDocket(String basePackage) {
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                 .select()
                 .apis(RequestHandlerSelectors.basePackage("com.ydtech.modules." + basePackage))
@@ -173,7 +173,8 @@ public class SwaggerConfig {
                 ;
 
     }
-    public Docket buildDocket(String basePackage,String groupName){
+
+    public Docket buildDocket(String basePackage, String groupName) {
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                 .select()
                 .apis(RequestHandlerSelectors.basePackage("com.ydtech.modules." + basePackage))
@@ -189,6 +190,4 @@ public class SwaggerConfig {
     }
 
 
-
-
 }

+ 47 - 0
src/main/java/com/ydtech/constants/enums/dict/ser/OderStateEnum.java

@@ -0,0 +1,47 @@
+package com.ydtech.constants.enums.dict.ser;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "oderState", desc = "订单状态")
+public enum OderStateEnum implements IBaseEnum {
+
+    UNPAID("101","待支付",0,1),
+
+    AWAIT_RESCUE("102","待救援",0,1),
+
+    UNDERWAY_RESCUE("103","救援中",0,1),
+
+    FINISHED("104","已结束",0,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+    public static OderStateEnum getOderStateEnum(String code)
+    {
+        for (OderStateEnum item : OderStateEnum.values())
+        {
+            if (item.getCode().equals(code))
+            {
+                return item;
+            }
+        }
+        return null;
+    }
+
+
+
+
+
+}

+ 39 - 0
src/main/java/com/ydtech/constants/enums/dict/ser/RescueTypeEnum.java

@@ -0,0 +1,39 @@
+package com.ydtech.constants.enums.dict.ser;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "rescueType", desc = "救援类型")
+public enum RescueTypeEnum implements IBaseEnum {
+
+    ELECTRIC_RESCUE("201","搭电救援",0,1),
+
+    TRAILER_RESCUE("202","拖车救援",0,1),
+
+    TYRE_RESCUE("203","换胎救援",0,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+
+    public static RescueTypeEnum getRescueTypeEnum(String code) {
+        for (RescueTypeEnum rescueTypeEnum : RescueTypeEnum.values()) {
+            if (rescueTypeEnum.getCode().equals(code)) {
+                return rescueTypeEnum;
+            }
+        }
+        return null;
+    }
+
+}

+ 56 - 0
src/main/java/com/ydtech/modules/ser/controller/SerRescueOrderController.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+import com.ydtech.modules.ser.service.SerRescueOrderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+@Api(tags = "救援订单")
+@RequestMapping("/ser/rescue")
+@RestController
+public class SerRescueOrderController extends BaseController {
+
+
+    @Autowired
+    private SerRescueOrderService rescueOrderService;
+
+    @PostMapping("rescueOrderPage")
+    @ApiOperation("分页查询救援订单")
+    public HttpResult<PageResult> rescueOrderPage(@RequestBody RescueOrderVo rescueOrderVo) {
+        IPage<RescueOrder> rescueOrderIPage = rescueOrderService.rescueOrderPage(rescueOrderVo);
+        PageResult pageResult = buildPageResponse(rescueOrderIPage);
+        return HttpResult.ok(pageResult);
+    }
+
+    @PostMapping("count/rescueSum")
+    @ApiOperation("计算金额")
+    public HttpResult<RescueOrder> countRescueSum(@RequestBody RescueOrder rescueOrder) {
+        return rescueOrderService.countRescueSum(rescueOrder);
+    }
+
+    @PostMapping("insert/rescueOrder")
+    @ApiOperation("新增订单")
+    public HttpResult<Object> insertRescueOrder(@RequestBody RescueOrder rescueOrder) {
+        return rescueOrderService.insertRescueOrder(rescueOrder);
+    }
+
+
+}

+ 55 - 0
src/main/java/com/ydtech/modules/ser/controller/SerServePriceController.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+import com.ydtech.modules.ser.service.SerRescueOrderService;
+import com.ydtech.modules.ser.service.SerServePriceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+@Api(tags = "服务管理")
+@RequestMapping("/ser/serve")
+@RestController
+public class SerServePriceController extends BaseController {
+
+
+    @Autowired
+    private SerServePriceService servePriceService;
+
+
+    @PostMapping("insert/serve")
+    @ApiOperation("新增服务")
+    public HttpResult<Object> insertServe(@RequestBody ServePrice servePrice) {
+        return servePriceService.insertServe(servePrice);
+    }
+
+    @PostMapping("update/serve")
+    @ApiOperation("新增服务")
+    public HttpResult<Object> updateServe(@RequestBody ServePrice servePrice) {
+        return servePriceService.updateServe(servePrice);
+    }
+
+    @PostMapping("delete/serve")
+    @ApiOperation("新增服务")
+    public HttpResult<Object> deleteServe(@RequestBody ServePrice servePrice) {
+        return servePriceService.deleteServe(servePrice);
+    }
+
+
+}

+ 8 - 0
src/main/java/com/ydtech/modules/ser/dao/SerRescueOrderMapper.java

@@ -0,0 +1,8 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+
+public interface SerRescueOrderMapper extends BaseMapper<RescueOrder> {
+}

+ 7 - 0
src/main/java/com/ydtech/modules/ser/dao/SerServePriceMapper.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+
+public interface SerServePriceMapper extends BaseMapper<ServePrice> { }

+ 83 - 0
src/main/java/com/ydtech/modules/ser/model/po/RescueOrder.java

@@ -0,0 +1,83 @@
+package com.ydtech.modules.ser.model.po;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@TableName(value = "ser_rescue_order", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class RescueOrder {
+
+    @TableId(value = "id",type= IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "救援起点")
+    @TableField(value = "rescue_starting")
+    private String rescueStarting;
+
+    @ApiModelProperty(value = "起点经度")
+    @TableField(value = "rescue_starting_longitude")
+    private BigDecimal startingLongitude;
+
+    @ApiModelProperty(value = "起点纬度")
+    @TableField(value = "rescue_starting_latitude")
+    private BigDecimal startingLatitude;
+
+    @ApiModelProperty(value = "救援终点")
+    @TableField(value = "rescue_destination")
+    private String rescuePosition;
+
+    @ApiModelProperty(value = "终点经度")
+    @TableField(value = "rescue_position_longitude")
+    private BigDecimal positionLongitude;
+
+    @ApiModelProperty(value = "终点纬度")
+    @TableField(value = "rescue_position_latitude")
+    private BigDecimal positionLatitude;
+
+    @ApiModelProperty(value = "救援联系人")
+    @TableField(value = "rescue_user")
+    private String rescueUser;
+
+    @ApiModelProperty(value = "联系人电话")
+    @TableField(value = "phone_number")
+    private String phoneNumber;
+
+    @ApiModelProperty(value = "车牌号")
+    @TableField(value = "licence_plate")
+    private String licencePlate;
+
+    @ApiModelProperty(value = "救援场景")
+    @TableField(value = "rescue_scene")
+    private String rescueScene;
+
+    @ApiModelProperty(value = "订单状态")
+    @TableField(value = "order_state")
+    private String orderState;
+
+    @ApiModelProperty(value = "订单生成时间")
+    @TableField(value = "create_time",fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "服务类型")
+    @TableField(value = "serve_code")
+    private String serveCode;
+
+    @ApiModelProperty(value = "救援金额")
+    @TableField(value = "rescue_sum")
+    private Double rescueSum;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/ser/model/po/ServePrice.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.ser.model.po;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@TableName(value = "ser_serve_price", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ServePrice {
+
+
+    @TableId(value = "id",type= IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "服务名称")
+    @TableField(value = "serve_name")
+    private String serveName;
+
+    @ApiModelProperty(value = "服务金额")
+    @TableField(value = "price")
+    private Double price;
+
+    @ApiModelProperty(value = "服务编号")
+    @TableField(value = "serve_code")
+    private String code;
+
+    @ApiModelProperty(value = "限定距离上限")
+    @TableField(value = "distance_upper_limit")
+    private Double distanceUpperLimit;
+
+    @ApiModelProperty(value = "超出距离计算金额")
+    @TableField(value = "count_price")
+    private Double countPrice;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(value = "creator")
+    private String creator;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time",fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+}

+ 55 - 0
src/main/java/com/ydtech/modules/ser/model/vo/RescueOrderVo.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.ser.model.vo;
+
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+
+@Data
+public class RescueOrderVo extends PageRequest {
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer id;
+
+    @ApiModelProperty(value = "救援起点")
+    private String rescueStarting;
+
+    @ApiModelProperty(value = "救援终点")
+    private String rescuePosition;
+
+    @ApiModelProperty(value = "救援联系人")
+    private String rescueUser;
+
+    @ApiModelProperty(value = "联系人电话")
+    private String phoneNumber;
+
+    @ApiModelProperty(value = "车牌号")
+    private String licencePlate;
+
+    @ApiModelProperty(value = "救援场景")
+    private String rescueScene;
+
+    @ApiModelProperty(value = "订单状态")
+    private String orderState;
+
+    @ApiModelProperty(value = "订单生成时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "服务编号")
+    private String serveCode;
+
+    @ApiModelProperty(value = "救援金额")
+    private Double rescueSum;
+
+    @ApiModelProperty(value = "操作人")
+    private String modifier;
+
+}

+ 16 - 0
src/main/java/com/ydtech/modules/ser/service/SerRescueOrderService.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.ser.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+
+public interface SerRescueOrderService extends IService<RescueOrder> {
+    HttpResult<RescueOrder> countRescueSum(RescueOrder rescueOrder);
+
+    HttpResult<Object> insertRescueOrder(RescueOrder rescueOrder);
+
+    IPage<RescueOrder> rescueOrderPage(RescueOrderVo rescueOrderVo);
+}

+ 16 - 0
src/main/java/com/ydtech/modules/ser/service/SerServePriceService.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.ser.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+
+public interface SerServePriceService extends IService<ServePrice> {
+
+
+    HttpResult<Object> insertServe(ServePrice servePrice);
+
+    HttpResult<Object> updateServe(ServePrice servePrice);
+
+    HttpResult<Object> deleteServe(ServePrice servePrice);
+}

+ 115 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerRescueOrderServiceImpl.java

@@ -0,0 +1,115 @@
+package com.ydtech.modules.ser.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.enums.dict.ser.RescueTypeEnum;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.dao.SerRescueOrderMapper;
+import com.ydtech.constants.enums.dict.ser.OderStateEnum;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+import com.ydtech.modules.ser.service.SerRescueOrderService;
+import com.ydtech.modules.ser.service.SerServePriceService;
+import com.ydtech.modules.ser.utils.PositionUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SerRescueOrderServiceImpl extends ServiceImpl<SerRescueOrderMapper, RescueOrder>
+        implements SerRescueOrderService {
+
+
+    @Autowired
+    private SerServePriceService servePriceService;
+
+
+    @Override
+    public HttpResult<RescueOrder> countRescueSum(RescueOrder rescueOrder) {
+        //获取起点终点经纬度
+        double sLongitude = rescueOrder.getStartingLongitude().doubleValue();
+        double sLatitude = rescueOrder.getStartingLatitude().doubleValue();
+        double pLongitude = rescueOrder.getPositionLongitude().doubleValue();
+        double pLatitude = rescueOrder.getPositionLatitude().doubleValue();
+        //计算公里数
+        Double distance4 = PositionUtil.getDistance4(sLongitude, sLatitude, pLongitude, pLatitude);
+        long round = Math.round(distance4);
+        long kilometre = (round / 1000);
+        //获取服务信息
+        LambdaQueryWrapper<ServePrice> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ServePrice::getCode, rescueOrder.getServeCode());
+        ServePrice servePrice = servePriceService.getOne(queryWrapper);
+        //设置救援金额
+        double rescueSum = servePrice.getPrice();
+        //设置超出规定公里数
+        double distanceUpperLimit = servePrice.getDistanceUpperLimit();
+        //设置超出规定计算金额
+        double countPrice = servePrice.getCountPrice();
+        //判断是否超出规定公里数
+        if (kilometre > distanceUpperLimit) {
+            rescueSum += (kilometre - distanceUpperLimit) * countPrice;
+        }
+        rescueOrder.setRescueSum(rescueSum);
+        rescueOrder.setServeCode(servePrice.getCode());
+        return HttpResult.ok(rescueOrder);
+    }
+
+    @Override
+    public HttpResult<Object> insertRescueOrder(RescueOrder rescueOrder) {
+        rescueOrder.setModifier(BaseController.getUser().getName());
+        rescueOrder.setOrderState(OderStateEnum.UNPAID.getDesc());
+        save(rescueOrder);
+        return HttpResult.ok();
+    }
+
+    @Override
+    public IPage<RescueOrder> rescueOrderPage(RescueOrderVo rescueOrderVo) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(rescueOrderVo.getPageNum());
+        pageRequest.setPageSize(rescueOrderVo.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        LambdaQueryWrapper<RescueOrder> queryWrapper = new LambdaQueryWrapper<>();
+        //起始点
+        if (rescueOrderVo.getRescueStarting() != null && !"".equals(rescueOrderVo.getRescueStarting())) {
+            queryWrapper.like(RescueOrder::getRescueStarting, rescueOrderVo.getRescueStarting());
+        }
+        //终点
+        if (rescueOrderVo.getRescuePosition() != null && !"".equals(rescueOrderVo.getRescuePosition())) {
+            queryWrapper.like(RescueOrder::getRescuePosition, rescueOrderVo.getRescuePosition());
+        }
+        //救援联系人
+        if (rescueOrderVo.getRescueUser() != null && !"".equals(rescueOrderVo.getRescueUser())) {
+            queryWrapper.like(RescueOrder::getRescueUser, rescueOrderVo.getRescueUser());
+        }
+        //联系人电话
+        if (rescueOrderVo.getPhoneNumber() != null && !"".equals(rescueOrderVo.getPhoneNumber())) {
+            queryWrapper.eq(RescueOrder::getPhoneNumber, rescueOrderVo.getPhoneNumber());
+        }
+        //车牌号
+        if (rescueOrderVo.getLicencePlate() != null && !"".equals(rescueOrderVo.getLicencePlate())) {
+            queryWrapper.eq(RescueOrder::getLicencePlate, rescueOrderVo.getLicencePlate());
+        }
+        //订单状态
+        if (rescueOrderVo.getOrderState() != null && !"".equals(rescueOrderVo.getOrderState())) {
+            OderStateEnum oderStateEnum = OderStateEnum.getOderStateEnum(rescueOrderVo.getOrderState());
+            queryWrapper.eq(RescueOrder::getOrderState, oderStateEnum != null ? oderStateEnum.getDesc() : null);
+        }
+        //订单生成时间
+        if (rescueOrderVo.getCreateTime() != null) {
+            queryWrapper.like(RescueOrder::getCreateTime, rescueOrderVo.getCreateTime());
+        }
+        //服务类型
+        if (rescueOrderVo.getServeCode() != null && !"".equals(rescueOrderVo.getServeCode())) {
+            RescueTypeEnum rescueTypeEnum = RescueTypeEnum.getRescueTypeEnum(rescueOrderVo.getServeCode());
+            queryWrapper.eq(RescueOrder::getServeCode, rescueTypeEnum != null ? rescueTypeEnum.getDesc() : null);
+        }
+
+        Page pageData = baseMapper.selectPage(page, queryWrapper);
+        return pageData;
+    }
+}

+ 34 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerServePriceServiceImpl.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.ser.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.dao.SerServePriceMapper;
+import com.ydtech.modules.ser.model.po.ServePrice;
+import com.ydtech.modules.ser.service.SerServePriceService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SerServePriceServiceImpl extends ServiceImpl<SerServePriceMapper, ServePrice>
+        implements SerServePriceService {
+
+
+    @Override
+    public HttpResult<Object> insertServe(ServePrice servePrice) {
+        servePrice.setModifier(BaseController.getUser().getName());
+        save(servePrice);
+        return HttpResult.ok();
+    }
+
+    @Override
+    public HttpResult<Object> updateServe(ServePrice servePrice) {
+        updateById(servePrice);
+        return HttpResult.ok();
+    }
+
+    @Override
+    public HttpResult<Object> deleteServe(ServePrice servePrice) {
+        removeById(servePrice);
+        return HttpResult.ok();
+    }
+}

+ 48 - 0
src/main/java/com/ydtech/modules/ser/utils/PositionUtil.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.ser.utils;
+ 
+/**
+ * 计算距离
+ */
+public class PositionUtil {
+ 
+ 
+    /**
+     * 方法四:(高德地图计算方法)
+     *
+     * @param longitude1 第一点的经度
+     * @param latitude1  第一点的纬度
+     * @param longitude2 第二点的经度
+     * @param latitude2  第二点的纬度
+     * @return 返回的距离,单位m
+     */
+    public static Double getDistance4(double longitude1, double latitude1, double longitude2, double latitude2) {
+        if (longitude1 == 0 || latitude1 == 0 || latitude2 == 0 || longitude2 == 0) {
+            return -1.0;
+        }
+        longitude1 *= 0.01745329251994329;
+        latitude1 *= 0.01745329251994329;
+        longitude2 *= 0.01745329251994329;
+        latitude2 *= 0.01745329251994329;
+        double var1 = Math.sin(longitude1);
+        double var2 = Math.sin(latitude1);
+        double var3 = Math.cos(longitude1);
+        double var4 = Math.cos(latitude1);
+        double var5 = Math.sin(longitude2);
+        double var6 = Math.sin(latitude2);
+        double var7 = Math.cos(longitude2);
+        double var8 = Math.cos(latitude2);
+        double[] var10 = new double[3];
+        double[] var20 = new double[3];
+        var10[0] = var4 * var3;
+        var10[1] = var4 * var1;
+        var10[2] = var2;
+        var20[0] = var8 * var7;
+        var20[1] = var8 * var5;
+        var20[2] = var6;
+ 
+        return Math.asin(Math.sqrt((var10[0] - var20[0]) * (var10[0] - var20[0]) + (var10[1] - var20[1]) * (var10[1] - var20[1]) + (var10[2] - var20[2]) * (var10[2] - var20[2])) / 2.0) * 1.27420015798544E7;
+        // 结果四舍五入 保留2位小数
+        //return new BigDecimal(distance).setScale(2, RoundingMode.HALF_UP).doubleValue();
+    }
+ 
+}