UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -14,12 +14,9 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.GeoResult; import org.springframework.data.geo.GeoResults; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.core.query.Query; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -140,19 +137,15 @@ }) public ResultUtil<List<Map<String, Object>>> queryNearbyCar(String lon, String lat){ //mongodb查询附近5公里范围内的坐标 NearQuery query = NearQuery.near(new Point(Double.parseDouble(lon), Double.parseDouble(lat))); query.query(Query.query(Criteria.where("point"))); query.maxDistance(5000); GeoResults<DriverPosition> results = mongoTemplate.geoNear(query, DriverPosition.class); Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000)); List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class); List<Map<String, Object>> collect = new ArrayList<>(); if(collect.size() > 0){ List<GeoResult<DriverPosition>> content1 = results.getContent(); List<DriverPosition> positionList = content1.stream().map(GeoResult::getContent).collect(Collectors.toList()); List<Integer> driverIds = positionList.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("driverId", driverIds) if(driverPositions.size() > 0){ List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds) .eq("authState", 2).eq("state", 2)); collect = drivers.stream().map(driver -> { Optional<DriverPosition> driverPosition = positionList.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); Map<String, Object> map = new HashMap<>(); map.put("driverId", driver.getId()); map.put("name", driver.getName()); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
Diff too large UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -145,6 +145,11 @@ */ private Date bindExpireDate; /** * 中台用户ID */ @TableField("onconUUID") private String onconUUID; public Integer getBindDriverId() { return bindDriverId; @@ -353,7 +358,15 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } public String getOnconUUID() { return onconUUID; } public void setOnconUUID(String onconUUID) { this.onconUUID = onconUUID; } @Override public String toString() { return "UserInfo{" + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -157,6 +157,7 @@ serverCarModelWarpper.setContentExclusive(contentExclusive); serverCarModelWarpper.setContentPrice(contentPrice); serverCarModelWarpper.setWaitPrice(jsonObject); serverCarModelWarpper.setAmount(this.calculationPrice(contentExclusive, distance, duration, wait, waitMoney)); serverCarModelWarpper.setBuyNowAmount(this.calculationPrice(contentPrice, distance, duration, wait, waitMoney)); @@ -296,7 +297,7 @@ serverCarModelWarpper.setContentNotTwo(new JSONObject()); serverCarModelWarpper.setContentPutThree(new JSONObject()); serverCarModelWarpper.setContentNotThree(new JSONObject()); serverCarModelWarpper.setContentExclusive(new JSONObject()); serverCarModelWarpper.setContentExclusive(jsonObject); serverCarModelWarpper.setContentPrice(new JSONObject()); return serverCarModelWarpper; UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -27,7 +27,6 @@ import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; import org.apache.commons.lang.time.DateUtils; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -51,7 +50,6 @@ import java.net.URLConnection; import java.security.spec.AlgorithmParameterSpec; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; @@ -236,6 +234,7 @@ } //调中台接口查询用户 List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); String onconUUID = null; if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -248,6 +247,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -265,6 +265,9 @@ userInfo.setConsumption(0D); userInfo.setBalance(0D); userInfo.setState(1); if(null != onconUUID){ userInfo.setOnconUUID(onconUUID); } //用户所属企业 if(null != registAreaCode){ @@ -868,7 +871,8 @@ nickName = userInfo.getNickName(); } //调中台接口查询用户 List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); String onconUUID = null; List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -881,6 +885,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -895,6 +900,7 @@ userInfo1.setAvatar(userInfo.getAvatar()); userInfo1.setSex(userInfo.getSex()); userInfo1.setNickName(userInfo.getNickName()); userInfo1.setOnconUUID(onconUUID); this.updateById(userInfo1); if (ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")) {//小程序登录后绑定手机号码 @@ -944,7 +950,7 @@ loginWarpper.setPhone(2); return ResultUtil.success(loginWarpper); } userInfo.setOnconUUID(onconUUID); userInfo.setPhone(phone); userInfo.setUpdateTime(new Date()); userInfo.setUpdateUser(userInfo.getId()); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -29,7 +29,7 @@ @Component public class PushUtil { private final String socket_uri = "http://172.21.35.142:6000"; private final String socket_uri = "http://127.0.0.1:6000"; @Autowired private IOrderTaxiService orderTaxiService; UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,16 +1,27 @@ package com.stylefeng.guns.modular.system.util; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.account.controller.AppOrderController; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService; import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.SendSmsRequest; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; /** @@ -43,6 +54,9 @@ @Autowired private ChinaMobileUtil chinaMobileUtil; @Autowired private IUserInfoService userInfoService; @@ -52,7 +66,6 @@ @Scheduled(fixedRate = 1000 * 60) public void taskMinute(){ try { //修改过期的优惠券 userCouponRecordService.updateTimeOut(); //修改过期的商家优惠券 @@ -71,16 +84,41 @@ } // // /** // * 每月第一天的1点执行的任务 // */ // @Scheduled(cron = "0 0 1 1 * *") // public void taskMonth(){ // try { // // }catch (Exception e){ // e.printStackTrace(); // } // } /** * 每天中午12点发送提醒短信 */ @Scheduled(cron = "0 0 12 * * ?") public void taskMonth(){ try { List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("isDelete", 1) .eq("state", 7).eq("abnormal", 1) .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)")); for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId()); SendSmsRequest request = new SendSmsRequest(); request.setDestAddress(userInfo.getPhone()); request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); request.setTemplateParams(templateParams); request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("isDelete", 1) .eq("state", 7).eq("abnormal", 1) .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)")); for (OrderTaxi orderTaxi : orderTaxis) { UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId()); SendSmsRequest request = new SendSmsRequest(); request.setDestAddress(userInfo.getPhone()); request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); request.setTemplateParams(templateParams); request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } }catch (Exception e){ e.printStackTrace(); } } } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -26,19 +26,19 @@ // CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setOrderNo("0123456"); // request.setOrderNo("01234567890"); // request.setCustomerId("11448156"); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); // request.setServiceType(1); // String travelItinerary = createTravelItinerary(request); // System.err.println(travelItinerary);//1948685426689200128 // System.err.println(travelItinerary);//1950363840206753792 //修改行程状态 // ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setOrderId("1948685426689200128"); // request.setOrderId("1950363840206753792"); // request.setStatus(7); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); @@ -53,18 +53,18 @@ // tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); // tradeOrderCreateData.setCharge(new BigDecimal("0.01")); // tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); // tradeOrderCreateData.setOrderId("1948685426689200128"); // tradeOrderCreateData.setOrderNo("0123456"); // tradeOrderCreateData.setOrderId("1950363840206753792"); // tradeOrderCreateData.setOrderNo("01234567890"); // tradeOrderCreateData.setCustomerId("11448156"); // tradeOrderCreateData.setPayPartnerId("5400004"); // tradeOrderCreateData.setPartnerPayId("1948685426689200128"); // tradeOrderCreateData.setPartnerPayId("1950363840206753792"); // tradeOrderCreateData.setCurrency("RMB"); // tradeOrderCreateData.setTotalFee("1"); // tradeOrderCreateData.setRetUrl("/home/"); // tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); // tradeOrderCreateData.setClientIp("127.0.0.1"); // tradeOrderCreateData.setNeedLoginFlag("N"); // tradeOrderCreateData.setOrderDesc("出行订单支付"); // tradeOrderCreateData.setAccessMode("H5"); // tradeOrderCreateData.setAccessMode("APP"); // // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); @@ -79,7 +79,7 @@ // tradeOrderCreateData.setGoodsInfo(goodsInfo); // TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData); // System.err.println(tradeOrderCreate); // //TradeOrderCreate(orderInfo=OrderInfo(orderId=1948685426689200128, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9L61szNy2MhjTJ938TeNnX0U%3D, payId=540000420250725000135548, status=null, payTime=null, payFee=null, paymentInfos=null), sign=c9d849ee21dcc401cee968d4d31de04f)) //TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f)) //查询支付单信息 // GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
@@ -70,12 +70,12 @@ public static void main(String[] args) { SendSmsRequest request = new SendSmsRequest(); request.setDestAddress("15828353127"); request.setTemplateId("TPL202410290001"); request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); templateParams.put("code", "1234"); // templateParams.put("code", "1234"); request.setTemplateParams(templateParams); request.setCode("code"); request.setSpId("T8d5hdfg"); // request.setCode("code"); request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
@@ -13,6 +13,10 @@ @Document(collection = "driver_position") public class DriverPosition { @Id private String id; /** * 司机id */ private Integer driverId; /** * 点位 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
@@ -64,6 +64,8 @@ private JSONObject contentExclusive;//独享 @ApiModelProperty("一口价规则") private JSONObject contentPrice;//一口价 @ApiModelProperty("等待费规则") private JSONObject waitPrice;//等待费 @ApiModelProperty("计价说明(拼车)") private String fareTypeNote1; @@ -362,4 +364,13 @@ } return data; } public JSONObject getWaitPrice() { return waitPrice; } public void setWaitPrice(JSONObject waitPrice) { this.waitPrice = waitPrice; } }