From 7e9c4b59d353da2d911579daf8b1e1211defe08b Mon Sep 17 00:00:00 2001 From: bai <1643359946@qq.com> Date: Tue, 18 Jun 2024 23:21:40 +0800 Subject: [PATCH 1/3] =?UTF-8?q?2024=E5=B9=B46=E6=9C=8818=E6=97=A5=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E5=87=BA=E8=A1=8C=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqx/common/utils/baidu/BaiduCommon.java | 90 +++++++++++++++ src/main/java/com/sqx/map/CommonMapUtils.java | 37 ++++-- .../service/impl/OrdersServiceImpl.java | 5 +- .../sqx/modules/common/enums/CommonEnum.java | 25 ++--- .../common/utils/CommonConfigUtil.java | 12 ++ .../controller/TravelConfController.java | 7 ++ .../modules/travelconf/enums/TravelEnum.java | 40 ++++--- .../travelconf/service/TravelConfService.java | 25 ++++- .../service/impl/TravelConfServiceImpl.java | 106 +++++++++++++++++- .../modules/travelconf/vo/TravelPriceVo.java | 27 +++++ 10 files changed, 321 insertions(+), 53 deletions(-) create mode 100644 src/main/java/com/sqx/common/utils/baidu/BaiduCommon.java create mode 100644 src/main/java/com/sqx/modules/travelconf/vo/TravelPriceVo.java diff --git a/src/main/java/com/sqx/common/utils/baidu/BaiduCommon.java b/src/main/java/com/sqx/common/utils/baidu/BaiduCommon.java new file mode 100644 index 0000000..156e7bf --- /dev/null +++ b/src/main/java/com/sqx/common/utils/baidu/BaiduCommon.java @@ -0,0 +1,90 @@ +package com.sqx.common.utils.baidu; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONUtil; +import cn.hutool.setting.dialect.Props; +import com.google.common.collect.Maps; + +import java.util.Map; + +/** + * @ClassName BaiduCommon + * @Description TODO + * @Author bai + * @Date 2024/6/17 下午8:22 + * @Version 1.0 + **/ +public class BaiduCommon { + + //接口版本 + public static final String VERSION = "1"; + + //接口前缀 + public static final String BASE_PREFIX_PATH = "https://pns.baidubce.com/cloud/api/v"; + + //接口前缀 + + //拼接后的完整接口前缀 + public static final String BASE_PATH = BASE_PREFIX_PATH + VERSION; + + //绑定 + public static final String API_AXB_BINDING = BASE_PATH + "/axb/binding"; + + //解绑 + public static final String API_AXB_UNBINDING = BASE_PATH + "/axb/unbinding"; + + //转绑 + public static final String API_AXB_CHANGE_BINDING = BASE_PATH + "/axb/changeBinding"; + + public static String genSigned(){ + return null; + } + + public static String getUTCDate(){ + DateTime now = DateTime.now(); + return DateUtil.format(now, DatePattern.UTC_PATTERN); + } + + //发出请求 + public static String baseSendHttp(String url, Map headerMap, String json) { + return HttpRequest + .post(url) + .headerMap(headerMap, true) + //.form(paramMap) + .body(json) + .execute() + .body(); + } + + public static Map getBaseHeaderMap(){ + Map baseHeaderMap = Maps.newHashMap(); + baseHeaderMap.put("Authorization","bce-auth-v{1}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}"); + +// version是正整数。 +// timestamp是生成签名时的UTC时间。 +// expirationPeriodInSeconds表示签名有效期限。 +// signedHeaders是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用host和x-bce-date两个header) +// signature是256位签名的十六进制表示,由64个小写字母组成。 + + baseHeaderMap.put("Content-Type","application/json; charset=utf-8"); + baseHeaderMap.put("x-bce-date", getUTCDate());//2019-10-30T10:55:26Z + return baseHeaderMap; + } + + public static JSON sendHttpToJson(String url, Map paramMap){ + // + Props props = new Props("test.properties"); + props.getStr("1111"); + return JSONUtil.parse(baseSendHttp(url, getBaseHeaderMap(), JSONUtil.toJsonStr(paramMap))); + } + + + + + +} diff --git a/src/main/java/com/sqx/map/CommonMapUtils.java b/src/main/java/com/sqx/map/CommonMapUtils.java index 0670436..8d3e2a3 100644 --- a/src/main/java/com/sqx/map/CommonMapUtils.java +++ b/src/main/java/com/sqx/map/CommonMapUtils.java @@ -215,11 +215,11 @@ public class CommonMapUtils { /** * 根据开始位置和结束位置根据出行方式获取米 * @param mapType - * @param tripWay - * @param longitude - * @param latitude - * @param toLongitude - * @param toLatitude + * @param tripWay (2:驾车/出租,其他值:公交) + * @param longitude 经度 116.307490 + * @param latitude 纬度 39.984154 + * @param toLongitude 经度 116.307490 + * @param toLatitude 纬度 39.984154 * @return */ public static JSONObject calcTaxiMoney(MapEnum mapType,Integer tripWay, String longitude, String latitude, String toLongitude, String toLatitude, String city, String cityCode){ @@ -287,11 +287,11 @@ public class CommonMapUtils { /** * 根据开始位置和结束位置根据出行方式获取米 - * @param tripWay - * @param longitude - * @param latitude - * @param toLongitude - * @param toLatitude + * @param tripWay (2:驾车/出租,其他值:公交) + * @param longitude 经度 116.307490 + * @param latitude 纬度 39.984154 + * @param toLongitude 经度 116.307490 + * @param toLatitude 纬度 39.984154 * @return */ public static JSONObject calcTaxiMoneyInfo(Integer tripWay, String longitude, String latitude, String toLongitude, String toLatitude, String city, String cityCode){ @@ -348,5 +348,22 @@ public class CommonMapUtils { } + /** + * 查询距离 (米) + * @param tripWay (2:驾车/出租,其他值:公交) + * @param longitude 经度 116.307490 + * @param latitude 纬度 39.984154 + * @param toLongitude 经度 116.307490 + * @param toLatitude 纬度 39.984154 + * @return + */ + public static JSONObject calcTaxiMoneyInfo(Integer tripWay, String longitude, String latitude, String toLongitude, String toLatitude) { + JSONObject mapAdRes = CommonMapUtils.getLocationToAdInfo(longitude, latitude); + String cityName = mapAdRes.getString("city"); + String cityCode = mapAdRes.getString("adcode"); + return calcTaxiMoneyInfo(tripWay, longitude, latitude, toLongitude, toLatitude, cityName, cityCode); + } + + } diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java index 1435989..45159c7 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java @@ -152,10 +152,7 @@ public class OrdersServiceImpl extends ServiceImpl implements } //获取城市名称 - JSONObject mapAdRes = CommonMapUtils.getLocationToAdInfo(longitude, latitude); - String cityName = mapAdRes.getString("city"); - String cityCode = mapAdRes.getString("adcode"); - JSONObject mapRes = CommonMapUtils.calcTaxiMoneyInfo(artificer.getTripWay(), longitude, latitude, artificer.getLongitude(), artificer.getLatitude(), cityName, cityCode);//根据出行方式计算距离 + JSONObject mapRes = CommonMapUtils.calcTaxiMoneyInfo(artificer.getTripWay(), longitude, latitude, artificer.getLongitude(), artificer.getLatitude());//根据出行方式计算距离 //判断技师的出行方式 if (artificer.getTripWay() == null || artificer.getTripWay() == 1) { diff --git a/src/main/java/com/sqx/modules/common/enums/CommonEnum.java b/src/main/java/com/sqx/modules/common/enums/CommonEnum.java index 0c31ca3..390803b 100644 --- a/src/main/java/com/sqx/modules/common/enums/CommonEnum.java +++ b/src/main/java/com/sqx/modules/common/enums/CommonEnum.java @@ -2,8 +2,10 @@ package com.sqx.modules.common.enums; import com.sqx.modules.common.utils.CommonConfigUtil; import lombok.Getter; +import lombok.RequiredArgsConstructor; @Getter +@RequiredArgsConstructor public enum CommonEnum { NONE(null,null,null,null), @@ -32,7 +34,9 @@ public enum CommonEnum { /**白天时段从n开始~n结束*/ V3_TRAVEL_CONF_DAY(445, "v3_travel_conf", "白天时段从n开始~n结束", "2"), /**夜间时段从n开始~n结束(留空自动计算)*/ - V3_TRAVEL_CONF_NIGHT(446, "v3_travel_conf", "夜间时段从n开始~n结束(留空自动计算)", ","); + V3_TRAVEL_CONF_NIGHT(446, "v3_travel_conf", "夜间时段从n开始~n结束(留空自动计算)", ","), + + V3_TRAVEL_CONF_IS_FIXED(447, "v3_travel_conf", "出行配置使用动态价格", "true"); private final Integer key; @@ -42,13 +46,6 @@ public enum CommonEnum { private final String defValue; - CommonEnum(Integer key, String defCondition, String defName, String defValue) { - this.key = key; - this.defCondition = defCondition; - this.defName = defName; - this.defValue = defValue; - } - // private boolean defValueIsEmpty() { // return CommonConfigUtil.defValueIsEmpty(this.defValue); // } @@ -84,6 +81,7 @@ public enum CommonEnum { } @Getter + @RequiredArgsConstructor public enum GroupKeyEnum { /** @@ -131,17 +129,15 @@ public enum CommonEnum { V3_TRAVEL_CONF_DAYLIGHT_SAVING_TIME.getKey(), V3_TRAVEL_CONF_WINTER_TIME.getKey(), V3_TRAVEL_CONF_DAY.getKey(), - V3_TRAVEL_CONF_NIGHT.getKey() + V3_TRAVEL_CONF_NIGHT.getKey(), + V3_TRAVEL_CONF_IS_FIXED.getKey() }); private final Integer[] values; - - GroupKeyEnum(Integer[] values) { - this.values = values; - } } @Getter + @RequiredArgsConstructor public enum GroupConditionEnum { V3_ORDER_FORM("v3_order_form"), @@ -149,8 +145,5 @@ public enum CommonEnum { V3_TRAVEL_CONF("v3_travel_conf"); private final String value; - GroupConditionEnum(String value){ - this.value = value; - } } } diff --git a/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java b/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java index 7d21cfc..1fd535e 100644 --- a/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java +++ b/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java @@ -56,6 +56,18 @@ public class CommonConfigUtil { return Double.valueOf(value); } + /** + * 转为boolean类型 + * @param value 转换的值 + * @return 转换后的值 + */ + public static boolean getBooleanValue(String value) { + if(defValueIsEmpty(value)) return false; + return Boolean.getBoolean(value); + } + + + /** * 获取数组,默认按,分隔 * @param value 转换的值 diff --git a/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java b/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java index ac7dd8a..7f01d19 100644 --- a/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java +++ b/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java @@ -86,5 +86,12 @@ public class TravelConfController { return Result.success(); } + @GetMapping("/calcTravelPrice") + @ApiOperation("获取出行价格") + public Result calcTravelPrice(Long artificerId, String toLongitude, String toLatitude){ + return Result.success().put("data", service.calcTravelPrice(artificerId, toLongitude, toLatitude)); + } + + } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/travelconf/enums/TravelEnum.java b/src/main/java/com/sqx/modules/travelconf/enums/TravelEnum.java index 48c451f..712a9ac 100644 --- a/src/main/java/com/sqx/modules/travelconf/enums/TravelEnum.java +++ b/src/main/java/com/sqx/modules/travelconf/enums/TravelEnum.java @@ -1,8 +1,7 @@ package com.sqx.modules.travelconf.enums; -import com.sqx.modules.common.utils.CommonConfigUtil; -import com.sqx.modules.travelconf.entity.TravelConf; import lombok.Getter; +import lombok.RequiredArgsConstructor; public class TravelEnum { @@ -11,6 +10,7 @@ public class TravelEnum { * 价格类型 */ @Getter + @RequiredArgsConstructor public enum PricingType { /*** @@ -23,10 +23,25 @@ public class TravelEnum { TRENDS(2); private final Integer value; + } - PricingType(Integer value) { - this.value = value; - } + /** + * 固定价格类型 + */ + @Getter + @RequiredArgsConstructor + public enum FixedType { + + /** + * 往返 + */ + RETURN(1), + /** + * 单程 + */ + ONE_WAY(2); + + private final Integer value; } @@ -34,6 +49,7 @@ public class TravelEnum { * 出行方式 */ @Getter + @RequiredArgsConstructor public enum TravelType { /*** @@ -50,16 +66,13 @@ public class TravelEnum { FREE(3); private final Integer value; - - TravelType(Integer value) { - this.value = value; - } } /** * 时令 */ @Getter + @RequiredArgsConstructor public enum SeasonsType { /*** @@ -72,16 +85,13 @@ public class TravelEnum { WINTER_TIME(2); private final Integer value; - - SeasonsType(Integer value) { - this.value = value; - } } /** * 时段 */ @Getter + @RequiredArgsConstructor public enum TimeIntervalType { /*** @@ -94,10 +104,6 @@ public class TravelEnum { NIGHT(2); private final Integer value; - - TimeIntervalType(Integer value) { - this.value = value; - } } diff --git a/src/main/java/com/sqx/modules/travelconf/service/TravelConfService.java b/src/main/java/com/sqx/modules/travelconf/service/TravelConfService.java index a61ca36..e374dc2 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/TravelConfService.java +++ b/src/main/java/com/sqx/modules/travelconf/service/TravelConfService.java @@ -3,7 +3,9 @@ package com.sqx.modules.travelconf.service; import com.baomidou.mybatisplus.extension.service.IService; import com.sqx.modules.travelconf.entity.TravelConf; +import com.sqx.modules.travelconf.vo.TravelPriceVo; +import java.math.BigDecimal; import java.util.Date; public interface TravelConfService extends IService { @@ -11,11 +13,10 @@ public interface TravelConfService extends IService { /** * - * @param pricingType 价格类型(1:固定价格,2:动态价格) * @param travelType 出行方式(1:免费,2:出租,3:公共交通) * @return */ - TravelConf getConfByAccordingCondition(Integer pricingType, Integer travelType, Date businessTime); + TravelConf getConfByAccordingCondition(Integer travelType, Date businessTime); /** * 根据类型获取出行配置 @@ -27,4 +28,24 @@ public interface TravelConfService extends IService { */ TravelConf getConfByAccordingCondition(Integer pricingType, Integer travelType, Integer seasonsType, Integer timeIntervalType); + /** + * 按ID获取出行价格 + * @param artificerId + * @param toLongitude + * @param toLatitude + * @return + */ + TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude); + + /** + * 最终获取出行价格 + * @param _travelType + * @param freeKilometers + * @param longitude + * @param latitude + * @param toLongitude + * @param toLatitude + * @return + */ + TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude); } diff --git a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java index 12ed011..1ff07cc 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java +++ b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java @@ -2,9 +2,14 @@ package com.sqx.modules.travelconf.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sqx.common.exception.SqxException; +import com.sqx.map.CommonMapUtils; +import com.sqx.modules.artificer.entity.Artificer; +import com.sqx.modules.artificer.service.ArtificerService; import com.sqx.modules.common.entity.CommonInfo; import com.sqx.modules.common.enums.CommonEnum; import com.sqx.modules.common.service.CommonInfoService; @@ -13,9 +18,11 @@ import com.sqx.modules.travelconf.dao.TravelConfDao; import com.sqx.modules.travelconf.entity.TravelConf; import com.sqx.modules.travelconf.enums.TravelEnum; import com.sqx.modules.travelconf.service.TravelConfService; +import com.sqx.modules.travelconf.vo.TravelPriceVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.Map; @@ -28,20 +35,36 @@ public class TravelConfServiceImpl extends ServiceImpl commonInfoMap = commonInfoService.getMapByCondition(CommonEnum.GroupConditionEnum.V3_TRAVEL_CONF.getValue()); + //价格类型 + CommonInfo pricingTypeConfig = commonInfoMap.get(CommonEnum.V3_TRAVEL_CONF_IS_FIXED.getKey()); + + if(pricingTypeConfig == null) { + //throw new SqxException("无法找到出行配置,请联系管理员!"); + pricingType = TravelEnum.PricingType.TRENDS.getValue(); + }else if(CommonConfigUtil.getBooleanValue(pricingTypeConfig.getValue())){ + pricingType = TravelEnum.PricingType.TRENDS.getValue(); + } else { + pricingType = TravelEnum.PricingType.FIXED.getValue(); + } + //夏令时段 CommonInfo daylightSavingTime = commonInfoMap.get(CommonEnum.V3_TRAVEL_CONF_DAYLIGHT_SAVING_TIME.getKey()); //冬令时段 @@ -112,7 +135,7 @@ public class TravelConfServiceImpl extends ServiceImpl Date: Wed, 19 Jun 2024 16:26:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?2024=E5=B9=B46=E6=9C=8819=E6=97=A5=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sqx/common/utils/Result2.java | 54 +++++++++++++++++++ src/main/java/com/sqx/map/CommonMapUtils.java | 40 ++++++++------ .../common/utils/CommonConfigUtil.java | 2 +- .../controller/TravelConfController.java | 8 --- .../app/AppTravelConfController.java | 45 ++++++++++++++++ .../modules/travelconf/entity/TravelConf.java | 17 ++++++ .../service/impl/TravelConfServiceImpl.java | 9 +++- .../modules/travelconf/vo/TravelPriceVo.java | 11 +++- 8 files changed, 157 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/sqx/common/utils/Result2.java create mode 100644 src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java diff --git a/src/main/java/com/sqx/common/utils/Result2.java b/src/main/java/com/sqx/common/utils/Result2.java new file mode 100644 index 0000000..e63aa0c --- /dev/null +++ b/src/main/java/com/sqx/common/utils/Result2.java @@ -0,0 +1,54 @@ +package com.sqx.common.utils; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import org.apache.http.HttpStatus; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +/** + * 返回数据-泛型版 + * + */ +@ApiModel("统一返回值") +@Data +public class Result2 implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "状态码,0为正常,500为异常", example = "0") + private int code = 0; + + @ApiModelProperty(value = "消息", example = "保存成功!") + private String msg; + + @ApiModelProperty(value = "返回对象") + private T data; + + public Result2 error() { + return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员"); + } + + public Result2 error(String msg) { + return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg); + } + + public Result2 error(int code, String msg) { + this.code = code; + this.msg = msg; + return this; + } + + public Result2 success(String msg) { + this.msg = msg; + return this; + } + + public Result2 success() { + return new Result2<>(); + } + +} diff --git a/src/main/java/com/sqx/map/CommonMapUtils.java b/src/main/java/com/sqx/map/CommonMapUtils.java index 8d3e2a3..614dfe0 100644 --- a/src/main/java/com/sqx/map/CommonMapUtils.java +++ b/src/main/java/com/sqx/map/CommonMapUtils.java @@ -84,6 +84,7 @@ public class CommonMapUtils { if ("0".equals(status)) { result = jsonObject.getJSONObject("result"); } else { + log.error("返回值:{}",jsonObject.toJSONString()); log.error("转换失败!!!原因:" + jsonObject.getString("message")); } break; @@ -100,6 +101,7 @@ public class CommonMapUtils { if ("1".equals(status)) { result = jsonObject.getJSONObject("regeocode"); }else { + log.error("返回值:{}",jsonObject.toJSONString()); log.error("转换失败!!!原因:" + jsonObject.getString("info")); } break; @@ -120,8 +122,10 @@ public class CommonMapUtils { String status = jsonObject.getString("status"); if("0".equals(status)){ result = jsonObject.getJSONObject("result"); + }else { + log.error("返回值:{}",jsonObject.toJSONString()); + log.error("转换失败!!!原因:" + jsonObject.getString("msg")); } - log.error("转换失败!!!原因:" + jsonObject.getString("msg")); break; } default: break; @@ -131,8 +135,8 @@ public class CommonMapUtils { /** * 根据经纬度获取实际地址 - * @param longitude 经度 116.307490 - * @param latitude 纬度 39.984154 + * @param longitude 经度 125.294234 + * @param latitude 纬度 43.887282 * @return 经纬度所对应的文字地址 如【北京市东城区东华门街道天安门-城楼】以行政区划+道路+门牌号等信息组成的标准格式化地址 */ public static String getLocationToAddress(String longitude, String latitude){ @@ -159,8 +163,8 @@ public class CommonMapUtils { /** * 按坐标获取行政区划信息 - * @param longitude 经度 116.307490 - * @param latitude 纬度 39.984154 + * @param longitude 经度 125.294234 + * @param latitude 纬度 43.887282 * @return province:省/直辖市,city:市/地级区 及同级行政区划,如果当前城市为省直辖县级区划,city与district字段均会返回此城市,district:区/县级市 及同级行政区划,address:经纬度所对应的文字地址 如【北京市东城区东华门街道天安门-城楼】以行政区划+道路+门牌号等信息组成的标准格式化地址 */ @@ -216,10 +220,10 @@ public class CommonMapUtils { * 根据开始位置和结束位置根据出行方式获取米 * @param mapType * @param tripWay (2:驾车/出租,其他值:公交) - * @param longitude 经度 116.307490 - * @param latitude 纬度 39.984154 - * @param toLongitude 经度 116.307490 - * @param toLatitude 纬度 39.984154 + * @param longitude 经度 125.294234 + * @param latitude 纬度 43.887282 + * @param toLongitude 经度 125.294234 + * @param toLatitude 纬度 43.887282 * @return */ public static JSONObject calcTaxiMoney(MapEnum mapType,Integer tripWay, String longitude, String latitude, String toLongitude, String toLatitude, String city, String cityCode){ @@ -246,6 +250,7 @@ public class CommonMapUtils { if ("0".equals(status)) { result = jsonObject.getJSONObject("result"); } else { + log.error("返回值:{}",jsonObject.toJSONString()); log.error("{}路线计算失败: {}",tripWay == 1?"公交":"驾车" , jsonObject.getString("message")); } break; @@ -273,6 +278,7 @@ public class CommonMapUtils { if ("1".equals(status)) { result = jsonObject.getJSONObject("route"); }else { + log.error("返回值:{}",jsonObject.toJSONString()); log.error("{}路线计算失败: {}",tripWay == 1?"公交":"驾车" , jsonObject.getString("message")); } break; @@ -288,10 +294,10 @@ public class CommonMapUtils { /** * 根据开始位置和结束位置根据出行方式获取米 * @param tripWay (2:驾车/出租,其他值:公交) - * @param longitude 经度 116.307490 - * @param latitude 纬度 39.984154 - * @param toLongitude 经度 116.307490 - * @param toLatitude 纬度 39.984154 + * @param longitude 经度 125.294234 + * @param latitude 纬度 43.887282 + * @param toLongitude 经度 125.294234 + * @param toLatitude 纬度 43.887282 * @return */ public static JSONObject calcTaxiMoneyInfo(Integer tripWay, String longitude, String latitude, String toLongitude, String toLatitude, String city, String cityCode){ @@ -351,10 +357,10 @@ public class CommonMapUtils { /** * 查询距离 (米) * @param tripWay (2:驾车/出租,其他值:公交) - * @param longitude 经度 116.307490 - * @param latitude 纬度 39.984154 - * @param toLongitude 经度 116.307490 - * @param toLatitude 纬度 39.984154 + * @param longitude 经度 125.294234 + * @param latitude 纬度 43.887282 + * @param toLongitude 经度 43.887282 + * @param toLatitude 纬度 43.887282 * @return */ public static JSONObject calcTaxiMoneyInfo(Integer tripWay, String longitude, String latitude, String toLongitude, String toLatitude) { diff --git a/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java b/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java index 1fd535e..b979d1d 100644 --- a/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java +++ b/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java @@ -22,7 +22,7 @@ public class CommonConfigUtil { * @return 是否是空 */ public static boolean defValueIsEmpty(String value) { - return StringUtils.isNotBlank(value); + return !StringUtils.isNotBlank(value); } diff --git a/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java b/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java index 7f01d19..ded1a09 100644 --- a/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java +++ b/src/main/java/com/sqx/modules/travelconf/controller/TravelConfController.java @@ -86,12 +86,4 @@ public class TravelConfController { return Result.success(); } - @GetMapping("/calcTravelPrice") - @ApiOperation("获取出行价格") - public Result calcTravelPrice(Long artificerId, String toLongitude, String toLatitude){ - return Result.success().put("data", service.calcTravelPrice(artificerId, toLongitude, toLatitude)); - } - - - } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java b/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java new file mode 100644 index 0000000..90b0b46 --- /dev/null +++ b/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java @@ -0,0 +1,45 @@ +package com.sqx.modules.travelconf.controller.app; + +import com.sqx.common.exception.SqxException; +import com.sqx.common.utils.Result2; +import com.sqx.modules.travelconf.service.TravelConfService; +import com.sqx.modules.travelconf.vo.TravelPriceVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author bai + * @date 2024/06/08 + */ +@Slf4j +@RestController +@Api(value = "出行相关", tags = { "出行" }) +@RequestMapping(value = "/app/travelConf") +public class AppTravelConfController { + + @Autowired + private TravelConfService service; + + @GetMapping("/calcTravelPrice") + @ApiOperation("根据技师ID和用户所选的经纬度获取出行价格") + public Result2 calcTravelPrice(@ApiParam(value = "技师ID 示例:116", required = true, example = "116") Long artificerId, + @ApiParam(value = "经度 示例:125.294234", required = true, example = "125.294234") String toLongitude, + @ApiParam(value = "纬度 示例:43.887282", required = true, example = "43.887282") String toLatitude){ + Result2 res = new Result2<>(); + try { + res.setData(service.calcTravelPrice(artificerId, toLongitude, toLatitude)); + }catch (SqxException e) { + //业务错误 + log.error(e.getMsg(),e); + res.error(e.getMsg()); + } + return res; + } + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/travelconf/entity/TravelConf.java b/src/main/java/com/sqx/modules/travelconf/entity/TravelConf.java index e607e3e..8eeef46 100644 --- a/src/main/java/com/sqx/modules/travelconf/entity/TravelConf.java +++ b/src/main/java/com/sqx/modules/travelconf/entity/TravelConf.java @@ -3,6 +3,8 @@ package com.sqx.modules.travelconf.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -13,6 +15,7 @@ import java.time.LocalDateTime; * @author bai * @date 2024/06/08 */ +@ApiModel("出行配置") @Data @TableName("v3_travel_conf") public class TravelConf implements Serializable { @@ -21,72 +24,86 @@ public class TravelConf implements Serializable { /** * ID */ + @ApiModelProperty("主键") @TableId(type = IdType.AUTO) private Long id; /** * 创建时间 */ + @ApiModelProperty("创建时间") private String createTime; /** * 修改时间 */ + @ApiModelProperty("修改时间") private String updateTime; /** * 价格类型(1:固定价格,2:动态价格) */ + @ApiModelProperty("价格类型(1:固定价格,2:动态价格)") private Integer pricingType; /** * 出行方式(1:公交,2:出租,3:免费) */ + @ApiModelProperty("出行方式(1:公交,2:出租,3:免费)") private Integer travelType; /** * 时令(1:夏令时,2:冬令时) */ + @ApiModelProperty("时令(1:夏令时,2:冬令时)") private Integer seasonsType; /** * 时段(1:白天,2:夜间) */ + @ApiModelProperty("时段(1:白天,2:夜间)") private Integer timeIntervalType; /** * 起步价(元) */ + @ApiModelProperty("起步价(元)") private BigDecimal startingPrice; /** * 免费公里数(元) */ + @ApiModelProperty("免费公里数(元)") private BigDecimal freeKilometers; /** * 夜间出行费(元) */ + @ApiModelProperty("夜间出行费(元)") private BigDecimal nightTravelExpenses; /** * 每公里价格(元) */ + @ApiModelProperty("每公里价格(元)") private BigDecimal pricePerKilometer; /** * 固定价格类型(1:往返,2:单程) */ + @ApiModelProperty("固定价格类型(1:往返,2:单程)") private Integer fixedType; /** * 固定价格(元) */ + @ApiModelProperty("固定价格(元)") private BigDecimal fixedPrice; /** * 备注 */ + @ApiModelProperty("备注") private String remark; diff --git a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java index 1ff07cc..0168cba 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java +++ b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java @@ -166,6 +166,10 @@ public class TravelConfServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); //价格类型 qw.lambda().eq(pricingType != null, TravelConf::getPricingType, pricingType); @@ -186,7 +190,7 @@ public class TravelConfServiceImpl extends ServiceImpl Date: Wed, 19 Jun 2024 19:36:41 +0800 Subject: [PATCH 3/3] =?UTF-8?q?2024=E5=B9=B46=E6=9C=8819=E6=97=A5=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sqx/modules/common/utils/CommonConfigUtil.java | 2 +- .../travelconf/controller/app/AppTravelConfController.java | 4 ++-- .../travelconf/service/impl/TravelConfServiceImpl.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java b/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java index b979d1d..9e5e0e9 100644 --- a/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java +++ b/src/main/java/com/sqx/modules/common/utils/CommonConfigUtil.java @@ -63,7 +63,7 @@ public class CommonConfigUtil { */ public static boolean getBooleanValue(String value) { if(defValueIsEmpty(value)) return false; - return Boolean.getBoolean(value); + return Boolean.parseBoolean(value); } diff --git a/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java b/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java index 90b0b46..57c4d9c 100644 --- a/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java +++ b/src/main/java/com/sqx/modules/travelconf/controller/app/AppTravelConfController.java @@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController; */ @Slf4j @RestController -@Api(value = "出行相关", tags = { "出行" }) +@Api(value = "出行", tags = { "APP" }) @RequestMapping(value = "/app/travelConf") public class AppTravelConfController { @@ -27,7 +27,7 @@ public class AppTravelConfController { private TravelConfService service; @GetMapping("/calcTravelPrice") - @ApiOperation("根据技师ID和用户所选的经纬度获取出行价格") + @ApiOperation("计算本次服务出行金额") public Result2 calcTravelPrice(@ApiParam(value = "技师ID 示例:116", required = true, example = "116") Long artificerId, @ApiParam(value = "经度 示例:125.294234", required = true, example = "125.294234") String toLongitude, @ApiParam(value = "纬度 示例:43.887282", required = true, example = "43.887282") String toLatitude){ diff --git a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java index 0168cba..7263f60 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java +++ b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java @@ -222,12 +222,12 @@ public class TravelConfServiceImpl extends ServiceImpl