From fa4d91768a990d5e8b759300a1271b12f54c10ca Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 22 八月 2025 23:14:15 +0800 Subject: [PATCH] 8.22 --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java | 10 + UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml | 9 + UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java | 17 ++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java | 4 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 141 +++++++---------------- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 58 ++++----- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml | 3 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 13 +- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java | 4 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WxMaSubscribeMessageUtil.java | 5 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java | 42 +++++++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml | 2 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 1 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java | 2 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java | 12 ++ 15 files changed, 184 insertions(+), 139 deletions(-) diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java index 324a0c7..d7d560c 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java @@ -32,7 +32,7 @@ @PostMapping("/queryByType") @ApiOperation(value = "获取各种协议及H5页面", tags = {"用户端-协议"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "数据类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置,9=司机注册协议,10=改派说明,11=跨城出行乘车须知,12:常见问题,13:计价规则,14:包车协议)", name = "type", required = true, dataType = "int") + @ApiImplicitParam(value = "数据类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置,9=司机注册协议,10=改派说明,11=跨城出行乘车须知,12:常见问题,13:计价规则,14:包车协议 15同城小件物流协议)", name = "type", required = true, dataType = "int") }) public ResultUtil<BaseWarpper> queryByType(Integer type){ try { diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 52fd760..a0b7608 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -1291,6 +1291,7 @@ orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1); break; case 4: + orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); break; case 5: break; @@ -1359,16 +1360,14 @@ @PostMapping("/base/wxPayOrderLogisticsSpread") public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = icbcPayUtil.payCallback(request); + System.err.println("完成订单微信支付回调"); + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + System.out.println("wx支付信息:"+map); if(null != map){ String out_trade_no = map.get("out_trade_no"); String order_id = map.get("order_id"); - String s = icbcPayUtil.queryTransaction("", order_id); - if(s.equals("0")){ - icbcPayUtil.answer(response);//回调应答 - } - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ - String[] split = out_trade_no.split(","); + if(ToolUtil.isNotEmpty(out_trade_no) ){ + String[] split = out_trade_no.split("_"); Integer id = Integer.valueOf(split[0]); Integer type = Integer.valueOf(split[1]); orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1); diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java index 2728a65..5ad51d9 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java @@ -91,6 +91,23 @@ return ResultUtil.runErr(); } } + @ResponseBody + @RequestMapping(value = "/base/site/areaMonitoring1", method = RequestMethod.POST) + @ApiOperation(value = "判断一个点是是否在区域范围内", tags = {"用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"), + @ApiImplicitParam(value = "行政区域编号(510100)", name = "code", required = true, dataType = "int"), + @ApiImplicitParam(value = "经纬度", name = "lonLat", required = true, dataType = "string") + }) + public ResultUtil areaMonitoring1(Integer lineId, Integer code, String lonLat){ + try { + boolean b = siteService.areaMonitoring1(lineId, code, lonLat); + return ResultUtil.success(b ? 1 : -1); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java index e8e4f42..6cf16ba 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java @@ -19,4 +19,8 @@ */ List<Map<String, Object>> queryDriver(@Param("lineId") Integer lineId, @Param("day") Date day, @Param("driverId") Integer driverId); + + List<Integer> areaMonitoring1(@Param("lineId") Integer lineId); + + } 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..5875535 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 @@ -55,4 +55,7 @@ </if> order by a.startTime </select> + <select id="areaMonitoring1" resultType="java.lang.Integer"> + select siteId from t_line_site where lineId =#{lineId} and type !=1 + </select> </mapper> \ No newline at end of file diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java index c701187..38a1e07 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java @@ -36,4 +36,8 @@ * @throws Exception */ boolean areaMonitoring(Integer siteId, Integer code, String lonLat) throws Exception; + + boolean areaMonitoring1(Integer lineId, Integer code, String lonLat)throws Exception; + + } 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 8eb689c..6734c15 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 @@ -186,10 +186,8 @@ //存储摆渡车无接单后推送标识,实现多个类型的摆渡车订单无人接单后只给前端推送一次 public static Map<Integer, Boolean> pushEndMap = new HashMap<>(); - - - - + @Autowired + private CarMapper carMapper; /** @@ -2567,14 +2565,20 @@ // Company query = companyService.selectById(1); for(int i = 1; i <= 3; i++){ // PushOrder pushOrder = pushOrderService.querys(i, 4, query.getId()).get(0); - //获取同线路的同车型的跨城司机 List<Driver> list = driverService.queryDriversByLineAndCarModel(3,orderCrossCity.getServerCarModelId(), orderCrossCity.getLineId()); + if(list.size() > 0){ // double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 // int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) // list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + List<Integer> collect = list.stream().map(Driver::getCarId).collect(Collectors.toList()); + List<Car> cars = carMapper.selectList1( collect); for(Driver driver : list){//开始进行推送 + // 判断司机的当前进行的订单 看座位数 + Car car1 = cars.stream().filter(car -> car.getId().equals(driver.getCarId())).findFirst().get(); + Integer seat = car1.getSeat(); + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("driverId", driver.getId()).in("state", Arrays.asList(1,2,3,4,5))); // boolean bo = false; // for(Integer integer : integers){ // if(integer.compareTo(driver.getId()) == 0){ @@ -2585,7 +2589,9 @@ // if(bo){ // continue; // } - pushUtil.pushOrderState(2, driver.getId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 10); + if(seat>=orderCrossCities.size()){ + pushUtil.pushOrderState(2, driver.getId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 10); + } } } Thread.sleep(10 * 1000);//设置等待时间 @@ -2597,31 +2603,21 @@ if(i == 3 && state == 1){ pushUtil.pushEndPush(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3); orderIds.remove(orderCrossCity.getId()); - orderCrossCity.setState(10); - orderCrossCityMapper.updateById(orderCrossCity); - - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(orderCrossCity.getId()); - orderCancel.setOrderType(3); - orderCancel.setReason("没有司机接单,系统自动取消订单"); - orderCancel.setRemark("没有司机接单,系统自动取消订单"); - orderCancel.setState(2); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(2); - orderCancelService.insert(orderCancel); - //TODO:退款 - UserInfo userInfo = userInfoService.selectById (orderCrossCity.getUserId()); - userInfo.setBalance (new BigDecimal (userInfo.getBalance ()) - .add (new BigDecimal (orderCrossCity.getOrderMoney())) // 余额增加订单金额 - .setScale (2, BigDecimal.ROUND_HALF_EVEN) - .doubleValue ()); - SysIntegral query1 = sysIntegralMapper.query (orderCrossCity.getCompanyId ()); - if (query1 != null) { - int addIntegral = orderCrossCity.getOrderMoney().intValue () * query1.getIntegral (); // 原增加的积分 - userInfo.setIntegral (userInfo.getIntegral () - addIntegral); // 扣除对应积分(确保积分不为负可加额外判断) - } - transactionDetailsService.saveData (orderCrossCity.getUserId(), "订单取消退款", orderCrossCity.getOrderMoney (), 1, 1, 1, 3, orderCrossCity.getId ()); - userInfoService.updateById (userInfo); +// orderCrossCity.setState(10); +// orderCrossCityMapper.updateById(orderCrossCity); +// +// OrderCancel orderCancel = new OrderCancel(); +// orderCancel.setOrderId(orderCrossCity.getId()); +// orderCancel.setOrderType(3); +// orderCancel.setReason("没有司机接单,系统自动取消订单"); +// orderCancel.setRemark("没有司机接单,系统自动取消订单"); +// orderCancel.setState(2); +// orderCancel.setInsertTime(new Date()); +// orderCancel.setUserType(2); +// orderCancelService.insert(orderCancel); +// //TODO:退款 +// UserInfo userInfo = userInfoService.selectById (orderCrossCity.getUserId()); + addCancle(orderCrossCity.getId(),"没有司机接单,系统自动取消订单","没有司机接单,系统自动取消订单",orderCrossCity.getUserId()); } } 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 3d22c45..0cffd35 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 @@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.modular.crossCity.dao.LineSiteMapper; import com.stylefeng.guns.modular.crossCity.dao.LocationMapper; import com.stylefeng.guns.modular.crossCity.dao.SiteMapper; +import com.stylefeng.guns.modular.crossCity.model.LineSite; import com.stylefeng.guns.modular.crossCity.model.Site; import com.stylefeng.guns.modular.crossCity.server.ISiteService; import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper; @@ -24,6 +26,9 @@ @Resource private LocationMapper locationMapper; + + @Resource + private LineSiteMapper lineSiteMapper; @Autowired private GDMapElectricFenceUtil gdMapElectricFenceUtil; @@ -115,6 +120,43 @@ } return false; } + @Override + public boolean areaMonitoring1(Integer lineId, Integer code, String lonLat) throws Exception { + List<Integer> lineSites = lineSiteMapper.areaMonitoring1(lineId); + for (Integer lineSite : lineSites) { + List<Map<String, Object>> list = this.queryLocation(lineSite); + String province = code.toString().substring(0, 2) + "0000"; + String city = code.toString().substring(0, 4) + "00"; + for (Map<String, Object> map : list) { + if (Integer.valueOf(map.get("type").toString()) == 1) {//行政区域 + if (null != map.get("districtCode")) { + if (code.toString().equals(map.get("districtCode").toString())) { + return true; + } + continue; + } + if (null != map.get("cityCode")) { + if (city.equals(map.get("cityCode").toString())) { + return true; + } + continue; + } + if (null != map.get("provinceCode")) { + if (province.equals(map.get("provinceCode").toString())) { + return true; + } + continue; + } + } + if (Integer.valueOf(map.get("type").toString()) == 2) {//电子围栏 + String coordinate = map.get("coordinate").toString(); + return ElectricFenceUtil.monitorElectricFenc(coordinate, lonLat); + } + } + } + return false; + + } /** * 根据站点id获取地点区域 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 e964b9f..78e23c3 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 @@ -105,6 +105,9 @@ private static List<Integer> orderIds = new ArrayList<>(); + @Autowired + private PayMoneyUtil payMoneyUtil; + /** @@ -122,7 +125,7 @@ return ResultUtil.error("收货地址有误,无法查询具体地址信息"); } List<String> list = (List<String>)geocoding.get("data"); - Map<String, String> egeocode = gdMapGeocodingUtil.geocode(list.get(0).split(",")[0], list.get(0).split(",")[1]); + Map<String, String> egeocode = gdMapGeocodingUtil.geocode(list.get(0).split(",")[1], list.get(0).split(",")[0]); String ecityCode = egeocode.get("cityCode"); if(!scityCode.equals(ecityCode)){ return ResultUtil.error("已超出服务范围,请重新选择跨城小件物流"); @@ -141,14 +144,14 @@ */ @Override public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, Integer uid) throws Exception { - Company query = companyCityService.query(startLonLat.split(",")[0], startLonLat.split(",")[1]); - if(null == query){ - return ResultUtil.error("预约取货点暂无企业服务"); - } +// Company query = companyCityService.query(startLonLat.split(",")[0], startLonLat.split(",")[1]); +// if(null == query){ +// return ResultUtil.error("预约取货点暂无企业服务"); +// } Double price1 = 0D; Double price2 = 0D; if(type == 4){//同城 - Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); + Map<String, Object> query1 = systemPriceMapper.query(1, type, null); if(null == query1){ return ResultUtil.error("请先完善价格设定"); } @@ -157,7 +160,7 @@ price1 = jsonObject.getDouble("num2"); price2 = jsonObject.getDouble("num13"); }else{ - Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); + Map<String, Object> query1 = systemPriceMapper.query(1, type, null); if(null == query1){ return ResultUtil.error("请先完善价格设定"); } @@ -264,7 +267,7 @@ orderLogistics.setMileage(0D); orderLogistics.setIsReassign(1); orderLogistics.setReassignNotice(0); - ResultUtil<Map<String, Double>> price = this.getPrice(type, String.valueOf(startLon), String.valueOf(startLat), location.split(",")[0], location.split(",")[1]); + ResultUtil<Map<String, Double>> price = this.getPrice(type, String.valueOf(startLat), String.valueOf(startLon), location.split(",")[0], location.split(",")[1]); if(price.getCode() != 200){ return price; } @@ -299,14 +302,14 @@ * @throws Exception */ public ResultUtil<Map<String, Double>> getPrice(Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{ - Company query = companyCityService.query(startLon, startLat); - if(null == query){ - return ResultUtil.error("预约取货点暂无企业服务"); - } +// Company query = companyCityService.query(startLon, startLat); +// if(null == query){ +// return ResultUtil.error("预约取货点暂无企业服务"); +// } Double price1 = 0D; Double price2 = 0D; if(type == 4){//同城 - Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); + Map<String, Object> query1 = systemPriceMapper.query(1, type, null); Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, endLon + "," + endLat, 1); String content = String.valueOf(query1.get("content")); JSONObject jsonObject = JSON.parseObject(content); @@ -340,7 +343,7 @@ price2 = jsonObject.getDouble("num22"); } }else{ - Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null); + Map<String, Object> query1 = systemPriceMapper.query(1, type, null); String content = String.valueOf(query1.get("content")); JSONObject jsonObject = JSON.parseObject(content); price1 = jsonObject.getDouble("num1"); @@ -371,9 +374,9 @@ integers = JSON.parseArray(vehicle).toJavaList(Integer.class); } Company query = companyCityService.query(String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司 - List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//用专车的推单配置 + List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//用专车的推单配置 for(int i = 1; i <= querys.size(); i++){ - PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0); + PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0); //获取空闲司机 List<Driver> list = driverService.queryIdleDriver(orderLogistics.getType(), null, orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 if(list.size() > 0){ @@ -434,21 +437,10 @@ ResultUtil resultUtil = ResultUtil.success(""); if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); - String appletsOpenId = null; - if(ToolUtil.isNotEmpty(value)){ - JSONObject jsonObject = JSON.parseObject(value); - appletsOpenId = jsonObject.getString(uid.toString()); - }else{ - appletsOpenId = userInfo.getAppletsOpenId(); - } - Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + "," + orderLogistics.getType(), 9, 5, uid.toString(), "小件物流下单支付", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); - if(map.get("code").equals("200")){ - paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 1, orderMoney, map.get("order_id"), 1);//添加预支付数据 - resultUtil = ResultUtil.success(map.get("data")); - }else{ - resultUtil = ResultUtil.error(map.get("msg"), ""); - } + String app = type == 1 ? "APP" : "JSAPI"; + resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_4_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); + paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, 4, 1, Double.valueOf(orderMoney.toString()), "", 1);//添加预支付数据 + } if(payType == 2){//支付宝支付 Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + "," + orderLogistics.getType(), 10, 5, uid.toString(), "小件物流下单支付", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null); @@ -466,8 +458,8 @@ userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 +// SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); +// userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 //添加交易明细 transactionDetailsService.saveData(uid, "小件物流下单支付", orderMoney, 2, 1, 1, 4, orderId); @@ -515,21 +507,10 @@ ResultUtil resultUtil = ResultUtil.success(""); if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); - String appletsOpenId = null; - if(ToolUtil.isNotEmpty(value)){ - JSONObject jsonObject = JSON.parseObject(value); - appletsOpenId = jsonObject.getString(uid.toString()); - }else{ - appletsOpenId = userInfo.getAppletsOpenId(); - } - Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + "," + orderLogistics.getType(), 9, 5, uid.toString(), "小件物流补差价", orderMoney, callbackPath + "/base/wxPayOrderLogisticsSpread", "", type, appletsOpenId); - if(map.get("code").equals("200")){ - paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 1, orderMoney, map.get("order_id"), 1);//添加预支付数据 - resultUtil = ResultUtil.success(map.get("data")); - }else{ - resultUtil = ResultUtil.error(map.get("msg"), ""); - } + String app = type == 1 ? "APP" : "JSAPI"; + resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_4_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderLogisticsSpread", app, userInfo.getAppletsOpenId()); + paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 1, orderMoney, orderLogistics.getId().toString(), 1);//添加预支付数据 + } if(payType == 2){//支付宝支付 Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + "," + orderLogistics.getType(), 10, 5, uid.toString(), "小件物流补差价", orderMoney, callbackPath + "/base/aliPayOrderLogisticsSpread", "", type, null); @@ -622,10 +603,10 @@ orderLogistics.setPayMoney(query.getAmount()); this.updateById(orderLogistics); - UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); - SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分 - userInfoService.updateById(userInfo); +// UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); +// SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); +// userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分 +// userInfoService.updateById(userInfo); query.setState(2); query.setCode(order_id); @@ -669,39 +650,16 @@ orderLogisticsSpread.setPayType(3); orderLogisticsSpreadService.updateById(orderLogisticsSpread); - UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); - SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分 - userInfoService.updateById(userInfo); +// UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); +// SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); +// userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分 +// userInfoService.updateById(userInfo); query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); - //添加已收入明细 - Company company = companyService.selectById(orderLogistics.getCompanyId()); - Double speMoney = orderLogistics.getType() == 4 ? company.getSameLogisticsMoney() : company.getCrossLogisticsMoney(); - BigDecimal d = null; - BigDecimal c = null; - if(company.getIsSpeFixedOrProportional() == 2){//固定 - d = new BigDecimal(speMoney); - c = new BigDecimal(query.getAmount()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - if(company.getIsSpeFixedOrProportional() == 1){//比例 - d = new BigDecimal(query.getAmount()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); - c = new BigDecimal(query.getAmount()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - Income income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 1).eq("objectId", orderLogistics.getCompanyId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); - income.setMoney(income.getMoney() + d.doubleValue()); - incomeService.updateById(income); - income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 2).eq("objectId", orderLogistics.getDriverId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); - income.setMoney(income.getMoney() + c.doubleValue()); - incomeService.updateById(income); - Driver driver = driverService.selectById(orderLogistics.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); + // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @@ -812,25 +770,12 @@ userInfoService.updateById(userInfo); }else{ //调用回退接口 - PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getPayType(), 2); - boolean b = false; - Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), orderLogistics.getId() + "_" + orderLogistics.getType(), orderLogistics.getOrderNum()); - if (Integer.valueOf(merrefund.get("code").toString()) == 0) { - Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderLogistics.getOrderNum()); - if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0) {//成功 - b = true; - } - if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1) {//失败 - return ResultUtil.error("订单取消失败(退款不成功)"); - } - if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2) {//未知 - return ResultUtil.error("退款返回未知异常"); - - } + PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, id, 4, orderLogistics.getPayType(), 2); + if(null == query){ + return ResultUtil.error("订单还未进行支付"); } - if(b){ - - } + Map<String, String> merrefund = payMoneyUtil.wxRefund(query.getCode(), orderLogistics.getOrderNum(), String.valueOf(query.getAmount()), String.valueOf(query.getAmount()), ""); + System.err.println("跨城退款数据:::"+merrefund); } //添加交易明细 transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", orderLogistics.getPayMoney(), 1, 1, 1, 4, orderLogistics.getId()); diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java index a815807..003b96b 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java @@ -26,4 +26,14 @@ * @throws Exception */ Car query(@Param("licensePlate") String licensePlate) throws Exception; + + /** + * 获取车辆列表 + * @param companyId + * @return + * @throws Exception + */ + List<Car> selectList1(@Param("list") List<Integer> collect); + + } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml index 858805f..5759e54 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml @@ -68,4 +68,13 @@ addObjectId as addObjectId from t_car where state = 1 and carLicensePlate = #{licensePlate} </select> + <select id="selectList1" resultType="com.stylefeng.guns.modular.system.model.Car" + > + select t1.id ,t2.seat from t_car t1 left join t_car_model t2 on t1.carModelId = t2.id + where t1.id in <foreach collection="list" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + + + </select> </mapper> \ No newline at end of file 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 47bc7dc..6407bf5 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 @@ -393,7 +393,7 @@ updateTime as updateTime, updateUser as updateUser from t_driver - where flag != 3 and state = 2 and authState = 2 + where flag != 3 and state !=1 and authState = 2 and id in ( select driverId from t_driver_work where startTime < now() and state = 1 and `type` like CONCAT('%', #{type}, '%') diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java index bdc49e1..f9dfc82 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java @@ -104,6 +104,18 @@ @TableField("addObjectId") private Integer addObjectId; + + @TableField(exist = false) + private Integer seat; + + public Integer getSeat() { + return seat; + } + + public void setSeat(Integer seat) { + this.seat = seat; + } + public Integer getId() { return id; } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 02fceb1..c98b407 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -198,6 +198,7 @@ @Override public List<Driver> queryDriversByLineAndCarModel(Integer type,Integer serverCarModelId, Integer lineId) throws Exception { List<Driver> drivers = driverMapper.queryDriversByLineAndCarModel( type,serverCarModelId, lineId); + return drivers; } } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WxMaSubscribeMessageUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WxMaSubscribeMessageUtil.java index 1d2d9ac..fc1165e 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WxMaSubscribeMessageUtil.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WxMaSubscribeMessageUtil.java @@ -31,7 +31,7 @@ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken; JSONObject data = new JSONObject(); data.put("touser", openId); - data.put("template_id", "loQAaLfhJvkkvZL0ILKbwKJiXiHq5db6SLqeLX_V54c "); + data.put("template_id", "loQAaLfhJvkkvZL0ILKbwKJiXiHq5db6SLqeLX_V54c"); data.put("page", "/pages/index/index/index" ); // 设置消息内容 @@ -66,6 +66,9 @@ System.out.println("订阅消息结果:" + result); } + public static void main(String[] args) { + push("oTrbv6_jAjA1HZDa1pc2k9Q35Zqw","张三",10.0); + } -- Gitblit v1.7.1