Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
| | |
| | | //前一天的數據 |
| | | Date ydate = DateUtil.addDaysToDate(new Date(), -1); |
| | | wxBillService.getWxBill(ydate); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 測試 |
| | | * @throws Exception |
| | |
| | | } |
| | | |
| | | |
| | | @Scheduled(fixedDelay = 1000L * 60L ) |
| | | public void autCancelGoodsOrder(){ |
| | | log.info("=====================开始 自動取消未支付订单状态======================="); |
| | | goodsorderService.autoCancelRefunOrder();; |
| | | log.info("=====================结束 自動取消未支付订单状态======================="); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "热销套餐") |
| | | private List<Discount> discountList; |
| | | |
| | | @ApiModelProperty(value = "电车运营区域") |
| | | private String eleBusinessArea; |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "骑行记录主键") |
| | | private String rideId; |
| | | |
| | | @ApiModelProperty(value = "车辆类型") |
| | | private String bikeTypeName; |
| | | |
| | | @ApiModelProperty(value = "套餐卡信息") |
| | | private DiscountMember discountMember; |
| | | |
| | |
| | | PageData<Bikes> findJoinPage(PageWrap<Bikes> pageWrap); |
| | | |
| | | void updateByJtt( Bikes m); |
| | | |
| | | List<Bikes> getEleBikes(); |
| | | } |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Bikes; |
| | | import com.doumee.dao.business.model.DiscountMember; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.MemberRides; |
| | | import com.doumee.dao.business.vo.GoodsorderExportVO; |
| | |
| | | |
| | | void autoCancelRefunOrder(); |
| | | |
| | | DiscountMember getUseDiscount(String memberId, Integer driveTime); |
| | | } |
| | |
| | | |
| | | |
| | | void dealSiteLocks(Sites sites); |
| | | |
| | | List<Sites> getSiteList(Integer type); |
| | | } |
| | |
| | | bike.setType(Constants.ONE);//只能新增电车数据 |
| | | return bike; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Bikes> getEleBikes() { |
| | | return bikesMapper.selectList(new QueryWrapper<Bikes>() |
| | | .lambda().eq(Bikes::getIsdeleted,Constants.ZERO) |
| | | .eq(Bikes::getType,Constants.ONE) |
| | | .eq(Bikes::getStatus,Constants.ZERO) |
| | | .isNotNull(Bikes::getLatitude) |
| | | .isNotNull(Bikes::getLongitude) |
| | | ); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | homeResponse.setIsStopServe(this.checkTemporaryStop()?1:0); |
| | | homeResponse.setIsBusiness(this.checkBusiness()?0:1); |
| | | homeResponse.setUnBusinessTips("营业时间为"+ systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode() +" ~ "+systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode()+",请在营业时间内使用本系统"); |
| | | homeResponse.setEleBusinessArea(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PARK_LAT_LNG_LIST).getCode()); |
| | | |
| | | homeResponse.setAdList(adMapper.selectList(new QueryWrapper<Ad>() |
| | | .eq("isdeleted",Constants.ZERO) |
| | |
| | | Goodsorder goodsorder = this.goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>() |
| | | .eq("member_id",memberId) |
| | | .eq("status",Constants.goodsorderStatus.pay) |
| | | .eq("type",0) |
| | | .last(" limit 1 ")); |
| | | homeResponse.setDepositStatus(Constants.ZERO); |
| | | if(goodsorder!=null){ |
| | |
| | | update.setCloseDate(new Date()); |
| | | update.setCloseInfo(Constants.REFUND_TYPE.get(type).getInfo()); |
| | | update.setCloseUserId(goodsorder.getEditor()); |
| | | update.setType(Constants.ZERO); |
| | | if(Constants.REFUND_TYPE.PLAT_FORCE.getKey() == type){ |
| | | //如果是强制结算 |
| | | update.setCloseType(Constants.ONE); |
| | |
| | | if(discountMember.getSurplusTime() >= durationSum){ |
| | | discountLog.setRideTime(durationSum); |
| | | discountLog.setRidePrice(closeMoney); |
| | | discountLogMapper.insert(discountLog); |
| | | topRides.setActualPrice(BigDecimal.ZERO); |
| | | closeMoney = BigDecimal.ZERO; |
| | | }else{ |
| | |
| | | qry.setStatus(Constants.goodsorderStatus.pay); |
| | | qry.setMemberId(memberId); |
| | | qry.setIsdeleted(Constants.ZERO); |
| | | qry.setType(Constants.ZERO); |
| | | if(goodsorderMapper.selectCount(new QueryWrapper<>(qry))>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已支付过定金,无法重复该操作"); |
| | | } |
| | |
| | | * 获取当前可使用的套餐 |
| | | * @param memberId |
| | | */ |
| | | @Override |
| | | public DiscountMember getUseDiscount(String memberId,Integer driveTime){ |
| | | String today = DateUtil.getToday(); |
| | | //判断今天是否为节假日 |
| | |
| | | Integer holiday = holidaysMapper.selectCount(new QueryWrapper<>(holidays))>0?1:0; |
| | | List<DiscountMember> discountMemberList = discountMemberMapper.selectJoinList(DiscountMember.class,new MPJLambdaWrapper<DiscountMember>() |
| | | .selectAll(DiscountMember.class) |
| | | .select(" select sum(d.ride_time) from discount_log d where and d.discount_member_id = discount_member.id " + |
| | | "and d.isdeleted = 0 and d.type = 0 and EXTRACT(DAY FROM d.create_date) = EXTRACT(DAY FROM CURRENT_DATE) " , DiscountMember::getUseTime)//查询今日已使用时间 |
| | | .select(" ( select sum(d.ride_time) from discount_log d where d.discount_member_id = t.id " + |
| | | "and d.isdeleted = 0 and d.type = 0 and EXTRACT(DAY FROM d.create_date) = EXTRACT(DAY FROM CURRENT_DATE) ) " , DiscountMember::getUseTime)//查询今日已使用时间 |
| | | .eq(DiscountMember::getStatus,Constants.ZERO) |
| | | .eq(DiscountMember::getMemberId,memberId) |
| | | .ge(DiscountMember::getUseStartDate, Utils.Date.getStart(DateUtil.stringToDate(today,"yyyy-MM-dd"))) |
| | | .le(DiscountMember::getUseEndDate, Utils.Date.getEnd(DateUtil.stringToDate(today,"yyyy-MM-dd"))) |
| | | .le(DiscountMember::getUseStartDate, Utils.Date.getStart(DateUtil.stringToDate(today,"yyyy-MM-dd"))) |
| | | .ge(DiscountMember::getUseEndDate, Utils.Date.getEnd(DateUtil.stringToDate(today,"yyyy-MM-dd"))) |
| | | .eq(Constants.equalsInteger(holiday,Constants.ONE),DiscountMember::getUseHoliday,Constants.ONE) |
| | | .orderByDesc(DiscountMember::getLimitType) |
| | | .orderByDesc(DiscountMember::getLimitTime) |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | public void autCancel(){ |
| | | goodsorderMapper.update(null,new UpdateWrapper<Goodsorder>().lambda() |
| | | .set(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.CANCEL.getKey()) |
| | | .set(Goodsorder::getEditDate,DateUtil.getCurrDateTime()) |
| | | .eq(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.UN_PAY.getKey()) |
| | | .apply(" NOW() >= create_date + INTERVAL '30 min' ") |
| | | ); |
| | | } |
| | | |
| | | } |
| | |
| | | Goodsorder goodsorder = goodsorderService.findOneByWrapper(new QueryWrapper<Goodsorder>() |
| | | .eq("isdeleted", Constants.ZERO) |
| | | .eq("status", Constants.goodsorderStatus.pay) |
| | | .eq("type", Constants.ZERO) |
| | | .eq("member_id", memberId) |
| | | .orderByDesc("create_date") |
| | | .last("limit 1")); |
| | |
| | | } |
| | | Integer bikeType = Constants.ZERO; |
| | | //根据前缀区分是否为电车二维码 |
| | | if(code.startsWith(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.ELECTRICITY_PREFIX).getCode())){ |
| | | if(code.startsWith(Constants.EBIKE_PREFIX)){ |
| | | bikeType = Constants.ONE; |
| | | code = code.replaceFirst(Constants.EBIKE_PREFIX,""); |
| | | } |
| | | MemberRidesResponse memberRidesResponse = new MemberRidesResponse(); |
| | | Bikes bike= new Bikes(); |
| | |
| | | if(Objects.isNull(baseParam)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"当前车辆类型无法租赁,请联系管理员!"); |
| | | } |
| | | memberRidesResponse.setBikeCode(bike.getCode()); |
| | | memberRidesResponse.setBikeTypeName(baseParam.getName()); |
| | | MemberRides memberRides = new MemberRides(); |
| | | this.dealMemberRidesData(baseParam.getId(),memberRides); |
| | | memberRidesResponse.setBikeCode(memberRides.getBikeCode()); |
| | | memberRidesResponse.setBasePrice(memberRides.getBasePrice()); |
| | | memberRidesResponse.setBaseTime(memberRides.getBaseTime()); |
| | | memberRidesResponse.setUnitTime(memberRides.getUnitTime()); |
| | |
| | | memberRidesResponse.getBasePrice(),memberRidesResponse.getBaseTime(), |
| | | memberRidesResponse.getUnitPrice() |
| | | ,memberRidesResponse.getUnitTime())); |
| | | //查询当前的骑行套餐 |
| | | memberRidesResponse.setDiscountMember(goodsorderService.getUseDiscount(memberId,Constants.ZERO)); |
| | | return memberRidesResponse; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public List<Sites> getSiteList(Integer type){ |
| | | return sitesMapper.selectList(new QueryWrapper<Sites>().lambda() |
| | | .eq(Sites::getIsdeleted,Constants.ZERO) |
| | | .eq(Sites::getStatus,Constants.ZERO) |
| | | .eq(Objects.nonNull(type),Sites::getType,type)); |
| | | } |
| | | |
| | | } |
| | |
| | | apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT |
| | | serialNumer: 368B835A194384FD583B83B77977B84127D2F655 |
| | | mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S |
| | | notifyUrl: http://xiaopiqiu2.natapp1.cc/api/wxPayNotify |
| | | refundNotifyUrl: http://xiaopiqiu2.natapp1.cc/api/wxRefundNotify |
| | | notifyUrl: http://xiaopiqiu3.natapp1.cc/api/wxPayNotify |
| | | refundNotifyUrl: http://xiaopiqiu3.natapp1.cc/api/wxRefundNotify |
| | | # notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify |
| | | keyPath: D://apiclient_cert.p12 |
| | | privateCertPath: D://apiclient_cert.pem |
| | |
| | | @Autowired |
| | | private DiscountService discountService; |
| | | |
| | | @Autowired |
| | | private SitesService sitesService; |
| | | |
| | | @Autowired |
| | | private BikesService bikesService; |
| | | |
| | | @PreventRepeat |
| | | @LoginRequired |
| | | @ApiOperation(value = "押金支付", notes = "小程序端") |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "discountId", value = "套餐主键", required = true) |
| | | }) |
| | | public ApiResponse<Object> createDiscountOrderPay(@RequestParam String discountId) { |
| | | return ApiResponse.success("操作成功",goodsorderService.createDiscountOrderPay(discountId,getMemberId())); |
| | | return ApiResponse.success("操作成功",goodsorderService.createDiscountOrderPay(getMemberId(),discountId)); |
| | | } |
| | | |
| | | |
| | |
| | | rentSite.setIsdeleted(Constants.ZERO); |
| | | rentSite.setStatus(Constants.ZERO); |
| | | return ApiResponse.success("查询成功",rentSiteService.findList(rentSite)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "电动车站点列表", notes = "小程序端") |
| | | @GetMapping("/eleSiteList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<List<Sites>> eleSiteList() { |
| | | return ApiResponse.success("查询成功",sitesService.getSiteList(Constants.ONE)); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "查询所有电动车信息", notes = "小程序端") |
| | | @GetMapping("/eleBikeList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<List<Bikes>> eleBikeList() { |
| | | return ApiResponse.success("查询成功",bikesService.getEleBikes()); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "获取电动车运营区域", notes = "小程序端") |
| | | @GetMapping("/getEleBusinessArea") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<String> getEleBusinessArea() { |
| | | return ApiResponse.success("查询成功",systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PARK_LAT_LNG_LIST).getCode()); |
| | | } |
| | | |
| | | @LoginRequired |
| | |
| | | @LoginRequired |
| | | @ApiOperation(value = "电车站点还车", notes = "电车站点还车") |
| | | @PostMapping("/backElecBike") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse backElecBike(@RequestBody BackElecBikeRequest param) { |
| | | param.setMemberId(getMemberId()); |
| | | jtt808Service.backElecBike(param); |
| | |
| | | @LoginRequired |
| | | @ApiOperation(value = "电车临时停车", notes = "电车临时停车") |
| | | @PostMapping("/pauseElecBike") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse pauseElecBike(@RequestBody BackElecBikeRequest param) { |
| | | param.setMemberId(getMemberId()); |
| | | jtt808Service.pauseElecBike(param); |
| | |
| | | @LoginRequired |
| | | @ApiOperation(value = "电车开锁", notes = "电车开锁") |
| | | @PostMapping("/openElecBike") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse openElecBike(@RequestBody OpenElecBikeRequest param) { |
| | | param.setMemberId(getMemberId()); |
| | | jtt808Service.openLock(param); |
| | |
| | | @LoginRequired |
| | | @ApiOperation(value = "临停开锁", notes = "临停开锁") |
| | | @PostMapping("/pauseOpenElecBike") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse pauseOpenElecBike(@RequestBody BackElecBikeRequest param) { |
| | | param.setMemberId(getMemberId()); |
| | | jtt808Service.pauseOpenElecBike(param); |
| | |
| | | Goodsorder gparam = new Goodsorder(); |
| | | gparam.setMemberId(param.getMemberId()); |
| | | gparam.setStatus(Constants.goodsorderStatus.pay); |
| | | gparam.setType(Constants.ZERO); |
| | | Goodsorder goodsorder = goodsorderService.findOne(gparam); |
| | | if(Objects.isNull(goodsorder)){ |
| | | throw new BusinessException(ResponseStatus.NO_UNCLOSEED_ORDER.getCode(),"无骑行订单记录"); |
| | |
| | | if(Constants.equalsInteger(rides.getStatus(),Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey()) |
| | | &&Constants.equalsInteger(rides.getType(),Constants.ONE)){ |
| | | //如果是电车并且是骑行中 进行关锁处理 |
| | | Bikes bike = getElecBikeByCode(rides.getBikeCode()); |
| | | //查询停车站点信息 |
| | | if(bike.getSiteId() ==null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,请按要求前往停车点停车!"); |
| | | } |
| | | lockBikes(bike.getDeviceSn(),Constants.ZERO);//发起关锁指令请求 |
| | | // Bikes bike = getElecBikeByCode(rides.getBikeCode()); |
| | | // //查询停车站点信息 |
| | | // if(bike.getSiteId() ==null){ |
| | | // throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,请按要求前往停车点停车!"); |
| | | // } |
| | | // lockBikes(bike.getDeviceSn(),Constants.ZERO);//发起关锁指令请求 |
| | | backIds.add(rides.getId()); |
| | | rides.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());//已还车 |
| | | rides.setBackSiteId(bike.getSiteId());//还车站点 |
| | | // rides.setBackSiteId(bike.getSiteId());//还车站点 |
| | | |
| | | rides.setBackDate(new Date()); |
| | | Integer freeRentTime = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME, Constants.FREE_RENT_TIME).getCode()); |
| | | Integer rideTime = DateUtil.betweenMin(rides.getRentDate(), rides.getBackDate()); |
| | | //计算骑行计费时长 |
| | | rides.setDuration( rideTime > freeRentTime ? rideTime : 0 ); |
| | | rides.setEditDate(rides.getBackDate()); |
| | | memberRidesJoinMapper.updateById(rides);//更新骑行状态为已还车 |
| | | } |
| | |
| | | if(memberRides ==null || memberRides.getBikeCode() == null){ |
| | | throw new BusinessException(ResponseStatus.NO_UNCLOSEED_ORDER.getCode(),"对不起,未查询到您当前有骑行中记录"); |
| | | } |
| | | Bikes bike = getElecBikeByCode(memberRides.getBikeCode()); |
| | | //查询停车位置是否符合停车位置规范 |
| | | checkPausePostionBiz(bike); |
| | | // Bikes bike = getElecBikeByCode(memberRides.getBikeCode()); |
| | | // //查询停车位置是否符合停车位置规范 |
| | | // checkPausePostionBiz(bike); |
| | | memberRides.setPauseDate(new Date()); |
| | | memberRides.setEditDate(memberRides.getBackDate()); |
| | | memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_PAUSING.getKey()); |
| | |
| | | Goodsorder goodsorder = goodsorderService.findOneByWrapper(new QueryWrapper<Goodsorder>() |
| | | .eq("isdeleted", Constants.ZERO) |
| | | .eq("status", Constants.goodsorderStatus.pay) |
| | | .eq("type", Constants.ZERO) |
| | | .eq("member_id", member.getId()) |
| | | .orderByDesc("create_date") |
| | | .last("limit 1")); |
| | |
| | | //根据车型查询计价方案 |
| | | isValidePricingType(bike,memberRides) ; |
| | | MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse(); |
| | | this.lockBikes(bike.getDeviceSn(),1); |
| | | // this.lockBikes(bike.getDeviceSn(),1); |
| | | //存储骑行记录 |
| | | memberRides.setId(Constants.getUUID()); |
| | | memberRides.setIsdeleted(Constants.ZERO); |
| | |
| | | memberRides.setOrdreId(goodsorder.getId()); |
| | | memberRides.setBikeCode(bike.getCode()); |
| | | memberRides.setRentDate(new Date()); |
| | | memberRides.setType(Constants.ZERO); |
| | | memberRides.setType(Constants.ONE); |
| | | memberRides.setBalance(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode())); |
| | | memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey()); |
| | | memberRides.setCloseStatus(Constants.ZERO); |