From 03552ae04973a224b5ccfce34e64999ea6a13d44 Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期四, 10 八月 2023 09:31:53 +0800 Subject: [PATCH] 超省2.0 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java | 51 ++++++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 8 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java | 12 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml | 6 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java | 6 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java | 3 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java | 69 ++++++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java | 85 ++++++++++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/SystemConfigController.java | 22 ++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java | 8 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java | 15 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java | 5 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java | 24 +++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml | 2 user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java | 62 +++++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml | 21 ++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Order.java | 5 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/GaoDe/MapUtil.java | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverMapper.java | 3 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 32 +++ 21 files changed, 426 insertions(+), 23 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java index c1e2a4a..1e4758a 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java @@ -1,5 +1,6 @@ package com.supersavedriving.driver.modular.system.api; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.driver.modular.system.model.Driver; import com.supersavedriving.driver.modular.system.model.DriverBank; @@ -11,6 +12,7 @@ import com.supersavedriving.driver.modular.system.util.PayMoneyUtil; import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil; import com.supersavedriving.driver.modular.system.util.huawei.SMSUtil; +import com.supersavedriving.driver.modular.system.util.juhe.OCRUtil; import com.supersavedriving.driver.modular.system.warpper.*; import com.supersavedriving.driver.core.util.ToolUtil; import com.supersavedriving.driver.modular.system.util.RedisUtil; @@ -35,6 +37,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.PrintWriter; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -146,6 +149,21 @@ try { ResultUtil resultUtil = driverService.driverRegister(driverRegisterWarpper); return ResponseWarpper.success(resultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + @ResponseBody + @PostMapping("/base/driver/orcPhoto") +// @ServiceLog(name = "司机注册申请", url = "/base/driver/driverRegister") + @ApiOperation(value = "图片识别--获取驾龄", tags = {"司机端-图片识别"}, notes = "") + @ApiImplicitParams({ + }) + public ResponseWarpper orcPhoto(MultipartFile file){ + try { + JSONObject certificate = OCRUtil.certificate(5, file); + return ResponseWarpper.success(certificate); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); @@ -312,14 +330,43 @@ @ApiOperation(value = "获取5公里范围内的司机", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) - public ResponseWarpper<List<String>> queryDriverPosition(){ + public ResponseWarpper< HashMap<String, Object> > queryDriverPosition(){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } - ResultUtil<List<String>> listResultUtil = driverService.queryDriverPosition(uid); + ResultUtil<HashMap<String, Object>> listResultUtil = driverService.queryDriverPosition(uid); + + + return ResponseWarpper.success(listResultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/driver/queryDriverOrderNum") +// @ServiceLog(name = "获取5公里范围内的司机", url = "/api/driver/queryDriverPosition") + @ApiOperation(value = "司机个人信息 接单量", tags = {"司机端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + @ApiImplicitParam(value = "时间 2022-11-11 - 2222-00-00", name = "time", required = false, dataType = "string"), + }) + public ResponseWarpper< HashMap<String, Object> > queryDriverOrderNum(String time){ + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + ResultUtil<HashMap<String, Object>> listResultUtil = driverService.queryDriverOrderNum(time,uid); + + return ResponseWarpper.success(listResultUtil); }catch (Exception e){ e.printStackTrace(); diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java index 559ced8..dde8c4a 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java @@ -248,9 +248,10 @@ @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(value = "原因", name = "cause", required = true, dataType = "string"), + @ApiImplicitParam(value = "phone", name = "phone", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper transferOrder(Long orderId, String cause){ + public ResponseWarpper transferOrder(Long orderId, String cause,String phone){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } @@ -262,7 +263,7 @@ if(null == uid){ return ResponseWarpper.tokenErr(); } - ResultUtil resultUtil = orderService.transferOrder(uid, orderId, cause); + ResultUtil resultUtil = orderService.transferOrder(uid, orderId, cause,phone); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/SystemConfigController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/SystemConfigController.java index e61a16c..c164ec6 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/SystemConfigController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/SystemConfigController.java @@ -49,4 +49,26 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + + @ResponseBody + @PostMapping("/base/config/getIndexTimeConfig") +// @ServiceLog(name = "获取转单提醒时间配置", url = "/base/config/queryTransferOrderConfig") + @ApiOperation(value = "获取首页有效时间配置", tags = {"司机端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper<String> getIndexTimeConfig(){ + try { + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); + JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); + String num1 = jsonObject.getString("num1"); + String num2 = jsonObject.getString("num2"); + return ResponseWarpper.success(num1+"-"+num2); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverMapper.java index 4c85839..eb2f37a 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverMapper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.supersavedriving.driver.modular.system.model.Driver; +import org.apache.ibatis.annotations.Param; public interface DriverMapper extends BaseMapper<Driver> { + int getTime(@Param("sTime") String sTime, @Param("eTime") String eTime, @Param("uid") Integer uid); + } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml index 90f1c46..9345129 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverMapper.xml @@ -54,4 +54,10 @@ <result column="merchantPhone" property="merchantPhone"/> <result column="merchantIDCode" property="merchantIDCode"/> </resultMap> + <select id="getTime" resultType="java.lang.Integer"> + select sum(onlineTime) from t_driver_online_time where driverId =#{uid} + <if test="sTime !=null"> + and day between #{sTime} and #{eTime} + </if> + </select> </mapper> diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml index 8dec2cb..f102d12 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml @@ -16,7 +16,7 @@ <select id="queryTotalAmount" resultType="double"> - select sum(amount) as amount from t_revenue where userType = 2 and userId = #{driverId} + select sum(amount) as amount from t_revenue where userType = 2 and userId = #{driverId} and type in (1,2) </select> diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java index 63b141a..0b5dbc6 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java @@ -257,4 +257,9 @@ */ @TableField("merchantIDCode") private String merchantIDCode; + /** + * 驾龄 + */ + @TableField("carAge") + private Integer carAge; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java index 0cdd764..40c58a8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverService.java @@ -5,6 +5,7 @@ import com.supersavedriving.driver.modular.system.util.ResultUtil; import com.supersavedriving.driver.modular.system.warpper.*; +import java.util.HashMap; import java.util.List; /** @@ -77,7 +78,7 @@ * @return * @throws Exception */ - ResultUtil<List<String>> queryDriverPosition(Integer uid) throws Exception; + ResultUtil<HashMap<String, Object>> queryDriverPosition(Integer uid) throws Exception; /** @@ -186,4 +187,7 @@ * @throws Exception */ ResultUtil microenterprise(Integer uid, String name, String number, String phone) throws Exception; + + ResultUtil<HashMap<String, Object>> queryDriverOrderNum(String time,Integer uid); + } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java index 9cf7a88..3587bb8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java @@ -101,7 +101,7 @@ * @return * @throws Exception */ - ResultUtil transferOrder(Integer uid, Long orderId, String cause) throws Exception; + ResultUtil transferOrder(Integer uid, Long orderId, String cause,String phone) throws Exception; /** @@ -203,4 +203,5 @@ * 主动完成线下收款 */ void completeCollection(); + } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java index 39c2621..957c73a 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java @@ -186,6 +186,9 @@ driver.setApprovalUserId(null); driver.setStatus(1); driver.setSource(driverRegisterWarpper.getSource()); + driver.setName(driverRegisterWarpper.getName()); + driver.setIdcard(driverRegisterWarpper.getIdcard()); + driver.setCarAge(driverRegisterWarpper.getCarAge()); return driver; } @@ -402,7 +405,8 @@ @Override - public ResultUtil<List<String>> queryDriverPosition(Integer uid) throws Exception { + public ResultUtil< HashMap<String, Object> > queryDriverPosition(Integer uid) throws Exception { + HashMap<String, Object> map = new HashMap<>(); DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", uid).eq("status", 1)); if(null == driverWork){ return ResultUtil.error("请先上班"); @@ -423,13 +427,36 @@ Query query = Query.query(Criteria.where("location").withinSphere(circle)); List<Location> locations = mongoTemplate.find(query, Location.class); locations.forEach(s -> { + int i=0; + Driver driver = this.baseMapper.selectById(s.getDriverId()); + i = driver.getServerStatus(); + if(driver.getServerStatus()==2){ + List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("driverId", s.getDriverId()).eq("state", 102)); + if(orders.size()>0){ + i = 3; + } + } String value1 = redisUtil.getValue("DRIVER" + s.getDriverId()); if(s.getDriverId().compareTo(uid) != 0 && ToolUtil.isNotEmpty(value1)){ - list.add(s.getLocation().getX() + "," + s.getLocation().getY()); + list.add(s.getLocation().getX() + "," + s.getLocation().getY()+","+i); } }); } - return ResultUtil.success(list); + + List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("hallOrder",1).eq("state",101)); + + map.put("driver",list); + ArrayList<String> blue = new ArrayList<>(); + orders.forEach(e-> blue.add(e.getStartLng()+","+e.getStartLat())); + + map.put("orderList",blue); + List<Order> ordersOne = orderService.selectList(new EntityWrapper<Order>().eq("state",301)); + + ArrayList<String> red = new ArrayList<>(); + ordersOne.forEach(e-> red.add(e.getStartLng()+","+e.getStartLat())); + + map.put("cancelOrder",red); + return ResultUtil.success(map); } @@ -901,4 +928,40 @@ this.updateById(driver); return ResultUtil.success(); } + + @Override + public ResultUtil<HashMap<String, Object>> queryDriverOrderNum(String time,Integer uid) { + String sTime = null; + String eTime =null; + EntityWrapper<Order> wrapper = new EntityWrapper<>(); + EntityWrapper<AppUser> wrapperOne = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(time)){ + sTime = time.split(" - ")[0]+" 00:00:00"; + eTime = time.split(" - ")[1]+" 23:59:59"; + wrapper.between("orderTakingTime",sTime,eTime); + wrapperOne.between("createTime",sTime,eTime); + } + ArrayList<Integer> objects = new ArrayList<>(); + objects.add(101); + objects.add(201); + objects.add(301); + objects.add(401); + wrapper.eq("driverId",uid); + wrapper.notIn("state",objects); + HashMap<String, Object> map = new HashMap<>(); + int orderNum = orderService.selectCount(wrapper); + map.put("orderNum",orderNum); + // 有效时长 + int okTime = this.baseMapper.getTime(sTime,eTime,uid); + map.put("okTime",okTime); + wrapperOne.eq("inviterType",2); + wrapperOne.eq("inviterId",uid); + int userNum = appUserService.selectCount(wrapperOne); + + + map.put("userNum",userNum); + + + return ResultUtil.success(map); + } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java index 50e673a..1d847c9 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -1546,6 +1546,14 @@ } if(type == 3){//收入 performanceRankingWarppers = revenueService.queryDriverRank(1, time, dayType); + + // 通过司机id 去差订单的优惠金额 + for (PerformanceRankingWarpper performanceRankingWarpper : performanceRankingWarppers) { + List<Order> orders = this.baseMapper.selectList(new EntityWrapper<Order>().eq("driverId", performanceRankingWarpper.getDriverId()).isNotNull("payMoney")); + double sum = orders.stream().mapToDouble(Order::getDiscountedPrice).sum(); + double sum1 = orders.stream().mapToDouble(Order::getDiscountAmount).sum(); + performanceRankingWarpper.setAmountOfData(new BigDecimal(performanceRankingWarpper.getAmountOfData()+sum+sum1).setScale(2,RoundingMode.HALF_UP).doubleValue()); + } } for (int i = 0; i < performanceRankingWarppers.size(); i++) { PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i); diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java index ff93e22..11f929b 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java @@ -14,13 +14,13 @@ public class DriverRegisterWarpper { @ApiModelProperty(value = "注册区域code", required = true, dataType = "string") private String code; - @ApiModelProperty(value = "头像", required = true, dataType = "string") + @ApiModelProperty(value = "头像", required = false, dataType = "string") private String avatar; @ApiModelProperty(value = "手机号码", required = true, dataType = "string") private String phone; - @ApiModelProperty(value = "紧急联系人", required = true, dataType = "string") + @ApiModelProperty(value = "紧急联系人", required = false, dataType = "string") private String emergencyContact; - @ApiModelProperty(value = "紧急联系人电话", required = true, dataType = "string") + @ApiModelProperty(value = "紧急联系人电话", required = false, dataType = "string") private String emergencyPhone; @ApiModelProperty(value = "身份证正面照", required = true, dataType = "string") private String idcardFront; @@ -34,4 +34,10 @@ private Integer inviterId; @ApiModelProperty(value = "注册来源(1=司机端注册,2=其他端注册)", required = true, dataType = "int") private Integer source; + @ApiModelProperty(value = "姓名", required = true, dataType = "String") + private String name; + @ApiModelProperty(value = "身份证号码", required = true, dataType = "String") + private String idcard; + @ApiModelProperty(value = "驾龄", required = true, dataType = "int") + private Integer carAge; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java index 5f499ee..533f61c 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java @@ -5,11 +5,10 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.user.core.common.annotion.ServiceLog; import com.supersavedriving.user.core.util.ToolUtil; -import com.supersavedriving.user.modular.system.model.AppUser; -import com.supersavedriving.user.modular.system.model.Driver; -import com.supersavedriving.user.modular.system.model.Order; -import com.supersavedriving.user.modular.system.model.Revenue; +import com.supersavedriving.user.modular.system.model.*; import com.supersavedriving.user.modular.system.service.*; +import com.supersavedriving.user.modular.system.util.GaoDe.MapUtil; +import com.supersavedriving.user.modular.system.util.GaoDe.model.District; import com.supersavedriving.user.modular.system.util.MallBook.model.InterfaceResponse; import com.supersavedriving.user.modular.system.util.MallBook.model.Receive; import com.supersavedriving.user.modular.system.util.MallBook.model.ReceiveUser; @@ -60,6 +59,60 @@ @Autowired private IDriverService driverService; + @Autowired + private IBranchOfficeService branchOfficeService; + + @Autowired + private ISystemConfigService systemConfigService; + + + + + + @ResponseBody + @PostMapping("/api/order/queryServerPrice") +// @ServiceLog(name = "获取正在进行中的订单id", url = "/api/order/queryServerOrder") + @ApiOperation(value = "根据定位获取恶劣天气+节假日信息", tags = {"用户端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + @ApiImplicitParam(value = "纬度", name = "lat", required = true, dataType = "String"), + @ApiImplicitParam(value = "经度", name = "lon", required = true, dataType = "String"), + }) + public ResponseWarpper<Integer> queryServerPrice(String lat,String lon){ + try { + Integer i =0; // 0为不能接单 1为恶劣天气 2为节假日 3为恶劣+节假日 + District geocode = MapUtil.geocode(lon, lat); + String districtCode = geocode.getDistrictCode(); + List<BranchOffice> districtCode1 = branchOfficeService.selectList(new EntityWrapper<BranchOffice>().eq("districtCode", districtCode)); + if(districtCode1.size()>0){ + BranchOffice branchOffice = districtCode1.get(0); + Integer id = branchOffice.getId(); + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8).eq("companyId", id)); + SystemConfig systemConfig9 = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 9).eq("companyId", id)); + if(systemConfig!=null && systemConfig9!=null){ + String content = systemConfig.getContent(); + JSONObject jsonObject = JSONObject.parseObject(content); + String num1 = jsonObject.get("num1").toString(); + String content9 = systemConfig9.getContent(); + JSONObject jsonObject9 = JSONObject.parseObject(content9); + String num9 = jsonObject9.get("num1").toString(); + if("1".equals(num1)){ + i=1; + } + if("1".equals(num9)){ + i=2; + } + if("1".equals(num1)&&"1".equals(num9)){ + i=3; + } + } + } + return ResponseWarpper.success(i); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } @@ -90,6 +143,7 @@ + @ResponseBody @PostMapping("/api/order/getEstimatedCosts") // @ServiceLog(name = "获取预估费用", url = "/api/order/getEstimatedCosts") diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java new file mode 100644 index 0000000..abf3e44 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java @@ -0,0 +1,8 @@ +package com.supersavedriving.user.modular.system.dao; + + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.user.modular.system.model.BranchOffice; + +public interface BranchOfficeMapper extends BaseMapper<BranchOffice> { +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml new file mode 100644 index 0000000..adcb6ab --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supersavedriving.user.modular.system.dao.BranchOfficeMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.user.modular.system.model.BranchOffice"> + <id column="id" property="id"/> + <result column="agentId" property="agentId"/> + <result column="principal" property="principal"/> + <result column="principalPhone" property="principalPhone"/> + <result column="email" property="email"/> + <result column="provinceCode" property="provinceCode"/> + <result column="provinceName" property="provinceName"/> + <result column="cityCode" property="cityCode"/> + <result column="cityName" property="cityName"/> + <result column="districtCode" property="districtCode"/> + <result column="districtName" property="districtName"/> + <result column="status" property="status"/> + <result column="createTime" property="createTime"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java new file mode 100644 index 0000000..09b68c9 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java @@ -0,0 +1,85 @@ +package com.supersavedriving.user.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.util.Date; + +/** +* 分公司实体 +* @author pzb +* @Date 2023/2/3 14:13 +*/ +@Data +@TableName("t_branch_office") +public class BranchOffice { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 代理商id + */ + @TableField("agentId") + private Integer agentId; + /** + * 负责人姓名 + */ + @TableField("principal") + private String principal; + /** + * 负责人电话 + */ + @TableField("principalPhone") + private String principalPhone; + /** + * 邮箱 + */ + @TableField("email") + private String email; + /** + * 代理区域省编号 + */ + @TableField("provinceCode") + private String provinceCode; + /** + * 代理区域省名称 + */ + @TableField("provinceName") + private String provinceName; + /** + * 代理区域市编号 + */ + @TableField("cityCode") + private String cityCode; + /** + * 代理区域市名称 + */ + @TableField("cityName") + private String cityName; + /** + * 代理区域区编号 + */ + @TableField("districtCode") + private String districtCode; + /** + * 代理区域区名称 + */ + @TableField("districtName") + private String districtName; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("status") + private Integer status; + /** + * 添加时间 + */ + @TableField("createTime") + private Date createTime; +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Order.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Order.java index 4aa6a66..c48d760 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Order.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Order.java @@ -307,4 +307,9 @@ */ @TableField("createTime") private Date createTime; + /** + * 节假日费 + */ + @TableField("holidayPrice") + private Double holidayPrice; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java new file mode 100644 index 0000000..2db85de --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java @@ -0,0 +1,15 @@ +package com.supersavedriving.user.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.user.modular.system.model.BranchOffice; + +import java.util.List; + +/** +* 分公司接口逻辑类 +* @author pzb +* @Date 2023/2/3 14:49 +*/ +public interface IBranchOfficeService extends IService<BranchOffice> { + +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java new file mode 100644 index 0000000..e949dc3 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java @@ -0,0 +1,24 @@ +package com.supersavedriving.user.modular.system.service.impl; + + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.user.modular.system.dao.BranchOfficeMapper; +import com.supersavedriving.user.modular.system.model.BranchOffice; +import com.supersavedriving.user.modular.system.service.IBranchOfficeService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + + +/** +* 分公司逻辑类 +* @author pzb +* @Date 2023/2/3 14:48 +*/ +@Service +public class BranchOfficeServiceImpl extends ServiceImpl<BranchOfficeMapper, BranchOffice> implements IBranchOfficeService { + + + +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java index a351a6f..6a9efaf 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -1,5 +1,6 @@ package com.supersavedriving.user.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -192,7 +193,9 @@ */ public Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city){ order = getOrderInitialPrice(order); - SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5)); + Integer driverId = order.getDriverId(); + Driver driver = driverService.selectById(driverId); + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5).eq("companyId",driver.getBranchOfficeId())); if(null == systemConfig){ if(type == 1){//预估金额 order.setEstimatedPrice(0D); @@ -275,6 +278,9 @@ Double num7 = extraCost.getDouble("num7");//恶劣天气超出公里 Double num8 = extraCost.getDouble("num8");//恶劣天气超出公里单价 X/公里 Double num9 = extraCost.getDouble("num9");//恶劣天气最高收取金额 + Double num10 = extraCost.getDouble("num10");//节假日收费 +// Double num11 = extraCost.getDouble("num11");//恶劣天气最高收取金额 +// Double num12 = extraCost.getDouble("num12");//恶劣天气最高收取金额 //等待费用 if(waitTime.compareTo(num1) >= 0){ @@ -288,13 +294,13 @@ } //恶劣天气 - systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8)); + systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8).eq("companyId",driver.getBranchOfficeId())); if(null != systemConfig){ JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent()); Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价 if(1 == num11){ - boolean badWeather = WeatherUtil.isBadWeather(city); - if(badWeather){ +// boolean badWeather = WeatherUtil.isBadWeather(city); +// if(badWeather){ order.setBadWeatherDistance(num5);//恶劣天气公里 order.setBadWeatherPrice(num6);//恶劣天气费 if(distance.compareTo(num7) > 0){ @@ -314,14 +320,27 @@ order.setOverBadWeatherPrice(subtract.doubleValue());//恶劣天气超出公里费 } } - } +// } + } + } + + + + //节假日 + systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 9).eq("companyId",driver.getBranchOfficeId())); + if(null != systemConfig){ + JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent()); + Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价 + if(1 == num11){ + BigDecimal bigDecimal = new BigDecimal(num10); + order.setHolidayPrice(bigDecimal.doubleValue()); } } //计算总金额 BigDecimal bigDecimal = new BigDecimal(order.getStartPrice() + order.getOverDrivePrice() + order.getLongDistancePrice() + order.getOverLongDistancePrice() + - order.getWaitTimePrice() + order.getOutWaitTimePrice() + order.getBadWeatherPrice() + order.getOverBadWeatherPrice() - order.getDiscountAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); + order.getWaitTimePrice() + order.getOutWaitTimePrice() + order.getBadWeatherPrice() + order.getOverBadWeatherPrice()+order.getHolidayPrice() - order.getDiscountAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); if(type == 1){//预估价 order.setEstimatedPrice(bigDecimal.doubleValue()); @@ -360,6 +379,7 @@ order.setCouponId(null);//优惠券 order.setDiscountAmount(0D);//折扣优惠金额 order.setDiscount(0D);//折扣 + order.setHolidayPrice(0D); return order; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/GaoDe/MapUtil.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/GaoDe/MapUtil.java index 109e383..30cdc27 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/GaoDe/MapUtil.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/GaoDe/MapUtil.java @@ -135,4 +135,9 @@ return null; } } + + + public static void main(String[] args) { + District geocode = geocode("114.382485", "23.084109"); + } } -- Gitblit v1.7.1