From 3ed8156b12d445bb4e374a7ee43696c60c10c58c Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 20 五月 2025 15:50:53 +0800 Subject: [PATCH] 修改bug --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 6 +- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml | 2 UserOKTravel/guns-admin/pom.xml | 10 +++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoJson.java | 9 +++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 11 ++- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoFencingPolygon.java | 35 +++++++++++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/LocationQuery.java | 23 +++++++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 11 ++- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 34 +++++++++- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java | 20 ++++-- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml | 2 UserOKTravel/guns-admin/src/main/resources/application.yml | 5 + 12 files changed, 141 insertions(+), 27 deletions(-) diff --git a/UserOKTravel/guns-admin/pom.xml b/UserOKTravel/guns-admin/pom.xml index 5d99f93..d342b24 100644 --- a/UserOKTravel/guns-admin/pom.xml +++ b/UserOKTravel/guns-admin/pom.xml @@ -190,7 +190,15 @@ <artifactId>geodesy</artifactId> <version>1.1.3</version> </dependency> - + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-mongodb</artifactId> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> + <!--引入本地工行支付jar start--> <!--<dependency>--> <!--<groupId>com.icbc</groupId>--> diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml index 81993a6..993d3ca 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml @@ -43,7 +43,7 @@ left join t_car_model f on (d.carModelId = f.id) left join t_car_service g on (d.id = g.carId and g.`type` = 3) left join t_line_price h on (g.serverCarModelId = h.serverCarModelId and a.lineId = h.lineId) - where 1 = 1 + where b.driverId in (select driverId from t_driver_work where state = 1 and type like '%3%') <if test="null != lineId"> and a.lineId = #{lineId} </if> diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index 2e86a2b..d10463d 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -587,9 +587,9 @@ orderCrossCity.setRemark(orderCrossCityWarpper.getRemark()); orderCrossCity.setIsReassign(1); //调用高德创建轨迹 - String s = gdFalconUtil.selectTerminal(driver.getPhone()); - String track = gdFalconUtil.createTrack(s); - orderCrossCity.setTrackId(track); +// String s = gdFalconUtil.selectTerminal(driver.getPhone()); +// String track = gdFalconUtil.createTrack(s); +// orderCrossCity.setTrackId(track); if(orderCrossCity.getTravelMode() == 2){//包车 orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber()); orderCrossCity.setPeopleNumber(lineShiftDriver.getLaveSeat()); diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java index 1bf87c0..1bceb66 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java @@ -8,11 +8,17 @@ import com.stylefeng.guns.modular.crossCity.server.ISiteService; import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; +import com.stylefeng.guns.modular.system.util.model.GeoFencingPolygon; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.geo.GeoJsonPoint; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; @Service @@ -23,9 +29,9 @@ @Resource private LocationMapper locationMapper; - + @Autowired - private GDMapElectricFenceUtil gdMapElectricFenceUtil; + private MongoTemplate mongoTemplate; /** @@ -109,12 +115,14 @@ } } if(Integer.valueOf(map.get("type").toString()) == 2){//电子围栏 - String gid = map.get("gid").toString(); - List<String> list1 = gdMapElectricFenceUtil.monitorElectricFenc("", lonLat); - if(list1.contains(gid)){ + String[] split = lonLat.split(","); + GeoJsonPoint point = new GeoJsonPoint(Double.valueOf(split[0]), Double.valueOf(split[1])); + Query query = Query.query(Criteria.where("geoJsonPolygon").intersects(point)); + List<GeoFencingPolygon> geoFencingPolygons = mongoTemplate.find(query, GeoFencingPolygon.class); + List<Integer> s_sites = geoFencingPolygons.stream().map(GeoFencingPolygon::getSiteId).collect(Collectors.toList()); + if(s_sites.contains(siteId)){ return true; } - continue; } } return false; diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index f92e95e..1961dbb 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -10,10 +10,7 @@ import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsSpreadService; -import com.stylefeng.guns.modular.system.dao.RegionMapper; -import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper; -import com.stylefeng.guns.modular.system.dao.SysIntegralMapper; -import com.stylefeng.guns.modular.system.dao.SystemPriceMapper; +import com.stylefeng.guns.modular.system.dao.*; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; @@ -66,6 +63,12 @@ @Autowired private IUserInfoService userInfoService; + + @Autowired + private IUserRedPacketRecordService userRedPacketRecordService; + + @Resource + private UserActivityDiscount1Mapper userActivityDiscount1Mapper; @Autowired private IPaymentRecordService paymentRecordService; @@ -342,6 +345,12 @@ if(dist.compareTo(jsonObject.getDouble("num20")) >= 0 && dist.compareTo(jsonObject.getDouble("num21")) < 0){ price2 = jsonObject.getDouble("num22"); } + if(dist.compareTo(jsonObject.getDouble("num10")) >= 0){ + price1 = jsonObject.getDouble("num11"); + } + if(dist.compareTo(jsonObject.getDouble("num21")) >= 0){ + price2 = jsonObject.getDouble("num22"); + } }else{ Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); String content = String.valueOf(query1.get("content")); @@ -435,6 +444,21 @@ Double orderMoney = orderLogistics.getOrderMoney(); UserInfo userInfo = userInfoService.selectById(uid); ResultUtil resultUtil = ResultUtil.success(); + orderLogistics.setCouponMoney(0D);//初始化历史数据 + orderLogistics.setCouponId(null); + + //计算折扣 + UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderLogistics.getCompanyId()); + if(null != query2){ + Double special = query2.getLogistics(); + orderLogistics.setDiscount(special); + double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + if(orderMoney.compareTo(v) > 0){ + orderLogistics.setDiscountMoney(orderMoney - v); + orderLogistics.setActivityId(query2.getId()); + orderMoney = v; + } + } if(payType == 1){//微信支付 String app = type == 1 ? "APP" : "JSAPI"; @@ -812,7 +836,7 @@ if(null == orderLogistics){ return ResultUtil.error("取消订单失败,订单信息有误"); } - if(orderLogistics.getState() > 5 && orderLogistics.getState() != 7 && orderLogistics.getState() != 8 && orderLogistics.getState() != 11){ + if(orderLogistics.getState() >= 5 && orderLogistics.getState() != 7 && orderLogistics.getState() != 8 && orderLogistics.getState() != 11){ return ResultUtil.error("取消订单失败,不合法的操作"); } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 603d6a5..c184fb1 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -37,6 +37,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; @@ -286,9 +287,9 @@ orderPrivateCar.setSnatchOrderTime(new Date()); //调用高德创建轨迹 - String s = gdFalconUtil.selectTerminal(driver.getPhone()); - String track = gdFalconUtil.createTrack(s); - orderPrivateCar.setTrackId(track); +// String s = gdFalconUtil.selectTerminal(driver.getPhone()); +// String track = gdFalconUtil.createTrack(s); +// orderPrivateCar.setTrackId(track); //调用移动的小号接口 Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); @@ -1190,7 +1191,7 @@ System.err.println("查询距离出错了"); }else{ d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), 2, RoundingMode.HALF_UP).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); orderServerWarpper.setOrderId(orderPrivateCar.getId()); @@ -1213,7 +1214,7 @@ System.err.println("查询距离出错了"); }else{ d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), 2, RoundingMode.HALF_UP).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml index 67abe6e..2c74ed0 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml @@ -265,7 +265,7 @@ a.headImgUrl as avatar, a.phone as phone, c.carLicensePlate as carCode, - CONCAT(F.`name`, d.`name`, '.', c.carColor) as carName, + CONCAT(f.`name`, d.`name`, '.', c.carColor) as carName, (select sum(fraction) / count(id) from t_order_evaluate where driverId = a.id) as score, ( (select count(id) from t_order_private_car where state in (7, 8, 9) and driverId = a.id) + diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoFencingPolygon.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoFencingPolygon.java new file mode 100644 index 0000000..5a2f93b --- /dev/null +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoFencingPolygon.java @@ -0,0 +1,35 @@ +package com.stylefeng.guns.modular.system.util.model; + +import lombok.Data; +import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; +import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; +import org.springframework.data.mongodb.core.index.GeoSpatialIndexed; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.io.Serializable; + +/** + * 地理围栏-多边形 + * @author zhibing.pu + * @date 2023/4/29 23:53 + */ +@Data +@Document(collection = "geo_fencing") +public class GeoFencingPolygon implements Serializable { + private static final long serialVersionUID = 4508868382007529971L; + + private String id; + /** + * 站点id + */ + private Integer siteId; + /** + * 站点名称 + */ + private String name; + /** + * 多边形经纬度 + */ + @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE) + private GeoJsonPolygon geoJsonPolygon; +} diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoJson.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoJson.java new file mode 100644 index 0000000..bb04b82 --- /dev/null +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoJson.java @@ -0,0 +1,9 @@ +package com.stylefeng.guns.modular.system.util.model; + +import lombok.Data; + +@Data +public class GeoJson { + private String type; + private Double[] coordinates; +} diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/LocationQuery.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/LocationQuery.java new file mode 100644 index 0000000..a7f14dc --- /dev/null +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/LocationQuery.java @@ -0,0 +1,23 @@ +package com.stylefeng.guns.modular.system.util.model; + +import lombok.Data; + +@Data +public class LocationQuery { + /** + * 当前经纬度[xxx,xxx] + **/ + private Double[] coordinates; + /** + * 距离,如:200,500,1,3,5,10,20 + **/ + private Double distance; + /** + * 距离单位,如:m,km + **/ + private String unit; + /** + * 位置类型:1-景点,2-加油站,3-酒店 + **/ + private Integer type; +} \ No newline at end of file diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 86b2167..3044f40 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -40,6 +40,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; @Service @@ -268,9 +269,9 @@ orderTaxi.setState(2);//待出发 orderTaxi.setSnatchOrderTime(new Date()); //调用高德创建轨迹 - String s = gdFalconUtil.selectTerminal(driver.getPhone()); - String track = gdFalconUtil.createTrack(s); - orderTaxi.setTrackId(track); +// String s = gdFalconUtil.selectTerminal(driver.getPhone()); +// String track = gdFalconUtil.createTrack(s); +// orderTaxi.setTrackId(track); //调用移动的小号接口 Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); @@ -1028,7 +1029,7 @@ System.err.println("查询距离出错了"); }else{ d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), 2, RoundingMode.HALF_UP).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); orderServerWarpper.setOrderId(orderTaxi.getId()); @@ -1051,7 +1052,7 @@ System.err.println("查询距离出错了"); }else{ d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), 2, RoundingMode.HALF_UP).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); diff --git a/UserOKTravel/guns-admin/src/main/resources/application.yml b/UserOKTravel/guns-admin/src/main/resources/application.yml index 98dde73..330baf8 100644 --- a/UserOKTravel/guns-admin/src/main/resources/application.yml +++ b/UserOKTravel/guns-admin/src/main/resources/application.yml @@ -80,7 +80,12 @@ dataSourceNames: - dataSourceGuns - dataSourceBiz +--- +spring: + data: + mongodb: + uri: mongodb://127.0.0.1:27017/admin --- -- Gitblit v1.7.1