From b8c20abe5c8a1ebd5227d5948ba310606fde5dc7 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 16 十二月 2024 09:01:09 +0800 Subject: [PATCH] 合作商权限 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 73 ++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 63 +++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java | 68 +++ ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml | 123 +++++--- ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java | 8 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java | 7 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java | 158 +++++++++- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java | 41 ++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/Page.java | 35 ++ ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java | 13 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java | 19 + ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java | 6 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java | 2 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 9 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java | 5 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 152 ++++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordQueryDto.java | 3 19 files changed, 658 insertions(+), 131 deletions(-) diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java index 74e56bf..3caeadd 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java @@ -49,6 +49,11 @@ public R<TParkingLot> getParkingLotByAppKey(String appKey) { return R.fail("根据停车场标识查询失败:" + throwable.getMessage()); } + + @Override + public R<Integer> getSiteIdByOrderId(Long id) { + return null; + } }; } } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java index 5ce4fff..b614702 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java @@ -42,12 +42,12 @@ } @Override - public R<Boolean> getChargingBillMenu(Integer partnerId, Integer siteId) { + public R<List<Boolean>> getChargingBillMenu(Integer partnerId, Integer siteId) { return R.fail("获取合作商授权的充电算帐单按钮权限失败:" + throwable.getMessage()); } @Override - public R<Boolean> getChargingOrderMenu(Integer partnerId, Integer siteId) { + public R<List<Boolean>> getChargingOrderMenu(Integer partnerId, Integer siteId) { return null; } @@ -62,7 +62,7 @@ } @Override - public R<Boolean> getAccountMenu(Integer partnerId, Integer siteId) { + public R<List<Boolean>> getAccountMenu(Integer partnerId, Integer siteId) { return null; } @@ -80,6 +80,11 @@ public R<List<Boolean>> watchChargingOrder(Integer partnerId, Integer siteId) { return null; } - }; + + @Override + public R<List<Boolean>> chargeEvaluation(Integer partnerId, Integer siteId) { + return null; + } + }; } } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java index 2751195..d1fd062 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java @@ -43,4 +43,6 @@ */ @PostMapping(value = "/t-parking-lot/getParkingLotByAppKey") R<TParkingLot> getParkingLotByAppKey(@RequestParam("appKey") String appKey); + @PostMapping(value = "/t-parking-lot/getSiteIdByOrderId") + R<Integer> getSiteIdByOrderId(@RequestParam("id") Long id); } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java index b4d49a2..5ef81e0 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java @@ -49,19 +49,21 @@ @PostMapping("/partner/authMenu/{partnerId}") Boolean authMenu(@PathVariable("partnerId") Integer partnerId, @RequestParam("siteId") Integer siteId, @RequestParam("siteMenu") String siteMenu); @PostMapping("/partner/getChargingBillMenu/{partnerId}/{siteId}") - R<Boolean> getChargingBillMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); + R<List<Boolean>> getChargingBillMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); @PostMapping("/partner/getChargingOrderMenu/{partnerId}/{siteId}") - R<Boolean> getChargingOrderMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); + R<List<Boolean>> getChargingOrderMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); @PostMapping("/partner/getChargingListMenu/{partnerId}/{siteId}") R<List<Boolean>> getChargingListMenu(@PathVariable("partnerId")Integer partnerId, @PathVariable("siteId") Integer siteId); @PostMapping("/partner/getSettlementListMenu/{partnerId}/{siteId}") R<List<Boolean>> getSettlementListMenu(@PathVariable("partnerId")Integer partnerId, @PathVariable("siteId") Integer siteId); @PostMapping("/partner/getAccountMenu/{partnerId}/{siteId}") - R<Boolean> getAccountMenu(@PathVariable("partnerId")Integer partnerId, @PathVariable("siteId") Integer siteId); + R<List<Boolean>> getAccountMenu(@PathVariable("partnerId")Integer partnerId, @PathVariable("siteId") Integer siteId); @PostMapping("/partner/managePageListMenu/{partnerId}/{siteId}") R<List<Boolean>> managePageListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); @PostMapping("/partner/parkingRecordListMenu/{partnerId}/{siteId}") R<List<Boolean>> parkingRecordListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); @PostMapping("/partner/watchChargingOrder/{partnerId}/{siteId}") R<List<Boolean>> watchChargingOrder(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); + @PostMapping("/partner/chargeEvaluation/{partnerId}/{siteId}") + R<List<Boolean>> chargeEvaluation(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java index b1da047..ec0c2c5 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java @@ -30,7 +30,9 @@ @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.NONE) private Long id; - + @ApiModelProperty(value = "uid") + @TableField(exist = false) + private String uid; @ApiModelProperty(value = "订单类型(1=充电订单,2=购物订单,3=兑换订单,4=会员订单)") @TableField("order_type") private Integer orderType; @@ -70,8 +72,7 @@ @ApiModelProperty(value = "申诉反馈") @TableField("feedback") private String feedback; - @TableField(exist = false) - private String uid; + @ApiModelProperty(value = "查看按钮权限 ") @TableField(exist = false) private Boolean authInfo = true; diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java index edcd033..1c514cd 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java @@ -214,13 +214,29 @@ } // 充电算帐单按钮权限 @PostMapping("/getChargingBillMenu/{partnerId}/{siteId}") - R<Boolean> getChargingBillMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ + R<List<Boolean>> getChargingBillMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charge_bill_order/download").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); - return partnerSite!=null?R.ok(true):R.ok(false); + TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charge_bill_order").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + List<Boolean> booleans = new ArrayList<>(); + if (partnerSite!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite1!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + return R.ok(booleans); } // 充电时段统计按钮权限 @PostMapping("/getChargingListMenu/{partnerId}/{siteId}") @@ -236,6 +252,42 @@ .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charging_period_statistics").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + if (partnerSite!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite1!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite2!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + return R.ok(booleans); + } + // 账户结算帐单按钮权限 + @PostMapping("/getAccountMenu/{partnerId}/{siteId}") + R<List<Boolean>> getAccountMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ + TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/account_settlement/download").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/account_settlement").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + List<Boolean> booleans = new ArrayList<>(); if (partnerSite!=null){ booleans.add(true); }else{ @@ -247,16 +299,6 @@ booleans.add(false); } return R.ok(booleans); - } - // 账户结算帐单按钮权限 - @PostMapping("/getAccountMenu/{partnerId}/{siteId}") - R<Boolean> getAccountMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ - TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/account_settlement/download").eq(TSiteMenu::getStatus, 0)); - TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() - .eq(TPartnerSite::getPartnerId, partnerId) - .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) - .eq(TPartnerSite::getSiteId, siteId)); - return partnerSite!=null?R.ok(true):R.ok(false); } // 结算表记录按钮权限 @PostMapping("/getSettlementListMenu/{partnerId}/{siteId}") @@ -272,6 +314,42 @@ .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/balance_sheet_record").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + if (partnerSite!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite1!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite2!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + return R.ok(booleans); + } + // 充电桩订单按钮权限 + @PostMapping("/getChargingOrderMenu/{partnerId}/{siteId}") + R<List<Boolean>> getChargingOrderMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ + TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charging_pile_order/record").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charging_pile_order").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + List<Boolean> booleans = new ArrayList<>(); if (partnerSite!=null){ booleans.add(true); }else{ @@ -283,16 +361,6 @@ booleans.add(false); } return R.ok(booleans); - } - // 充电桩订单按钮权限 - @PostMapping("/getChargingOrderMenu/{partnerId}/{siteId}") - R<Boolean> getChargingOrderMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ - TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charging_pile_order/record").eq(TSiteMenu::getStatus, 0)); - TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() - .eq(TPartnerSite::getPartnerId, partnerId) - .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) - .eq(TPartnerSite::getSiteId, siteId)); - return partnerSite!=null?R.ok(true):R.ok(false); } // 订单申诉按钮权限 @PostMapping("/managePageListMenu/{partnerId}/{siteId}") @@ -308,12 +376,22 @@ .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/order_appeal").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); @@ -334,12 +412,22 @@ .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/parking_record").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); @@ -360,6 +448,11 @@ .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); + TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charging_pile_order/monitoring_record").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ @@ -370,6 +463,27 @@ }else{ booleans.add(false); } + if (partnerSite2!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } + return R.ok(booleans); + } + // 充电评价数据权限 + @PostMapping("/chargeEvaluation/{partnerId}/{siteId}") + R<List<Boolean>> chargeEvaluation(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ + List<Boolean> booleans = new ArrayList<>(); + TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charge_evaluation").eq(TSiteMenu::getStatus, 0)); + TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() + .eq(TPartnerSite::getPartnerId, partnerId) + .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) + .eq(TPartnerSite::getSiteId, siteId)); + if (partnerSite!=null){ + booleans.add(true); + }else{ + booleans.add(false); + } return R.ok(booleans); } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java index f086096..f3c6b43 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java @@ -184,5 +184,11 @@ .eq(TParkingLot::getAppKey, appKey).eq(TParkingLot::getDelFlag, 0)); return R.ok(parkingLot); } + @PostMapping(value = "/getSiteIdByOrderId") + R<Integer> getSiteIdByOrderId(@RequestParam("id") Long id){ + TParkingRecord byId = parkingRecordService.getById(id); + TParkingLot parkingLot = parkingLotService.getById(byId.getParkingLotId()); + return R.ok(parkingLot.getId()); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java index cf216ff..9619a82 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java @@ -82,11 +82,30 @@ @PostMapping(value = "/page") public R<Page<TParkingRecord>> page(@RequestBody ParkingRecordPageQuery query) { Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); List<Integer> siteIds = new ArrayList<>(); List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData(); for (GetSiteListDTO datum : data) { siteIds.add(datum.getId()); + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.parkingRecordListMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } } if (siteIds.isEmpty()){ siteIds.add(-1); @@ -97,6 +116,7 @@ ids.add(tParkingLot.getId()); } + String s1 = ""; String s2 = ""; if (query.getTimePeriod()!=null){ @@ -104,6 +124,7 @@ s2 = query.getTimePeriod().split(" - ")[1]; } Page<TParkingRecord> page = parkingRecordService.lambdaQuery() + .in(TParkingRecord::getParkingLotId,ids) .like(query.getLicensePlate() != null, TParkingRecord::getLicensePlate, query.getLicensePlate()) .eq(query.getStatus() != null, TParkingRecord::getStatus, query.getStatus()) .eq(query.getOutParkingType() != null, TParkingRecord::getOutParkingType, query.getOutParkingType()) @@ -112,8 +133,7 @@ .between(query.getTimePeriod()!=null,TParkingRecord::getOutParkingTime,s1,s2) .orderByDesc(TParkingRecord::getCreateTime) .page(Page.of(query.getPageCurr(), query.getPageSize())); - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (TParkingRecord record : page.getRecords()) { TParkingLot byId = parkingLotService.getById(record.getParkingLotId()); record.setUid(record.getId().toString()); @@ -261,7 +281,22 @@ public R<TParkLotRecordVO> data(@RequestBody ParkingRecordQueryDto parkingRecordQueryDto){ //上方折线图 TParkLotRecordVO tParkLotRecordVO = new TParkLotRecordVO(); - + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); + Long userId = tokenService.getLoginUser().getUserid(); + //如果没传siteId,获取当前登陆人所有的siteIds + List<Integer> siteIds = new ArrayList<>(); + if (userId != null){ + List<GetSiteListDTO> data2 = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data2) { + siteIds.add(datum.getId()); + } + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + } + parkingRecordQueryDto.setSiteIds(siteIds); if (parkingRecordQueryDto.getDayType()==1) { List<Map<String, Object>> maps = parkingRecordService.parkingData(parkingRecordQueryDto); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordQueryDto.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordQueryDto.java index 2cecb9d..2b1cb66 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordQueryDto.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordQueryDto.java @@ -4,6 +4,7 @@ import lombok.Data; import java.time.LocalDate; +import java.util.List; @Data public class ParkingRecordQueryDto { @@ -15,4 +16,6 @@ private LocalDate startTime; @ApiModelProperty("结束时间") private LocalDate endTime; + @ApiModelProperty("站点ids") + private List<Integer> siteIds; } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml index 34ec41c..10ab1ad 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml @@ -97,14 +97,21 @@ </select> <select id="parkingData" resultType="java.util.Map"> SELECT - DATE_FORMAT( create_time, '%H:00' ) AS time, + DATE_FORMAT( t1.create_time, '%H:00' ) AS time, count( 1 ) AS orders, - SUM( timeout_amount ) AS timeoutAmount + SUM( t1.timeout_amount ) AS timeoutAmount FROM - t_parking_record - where DATE(create_time ) = CURDATE() + t_parking_record t1 + left join t_parking_lot t2 on t2.id = t1.parking_lot_id + where DATE(t1.create_time ) = CURDATE() <if test="parkingRecordQueryDto.parkingLotId !=null"> - AND parking_lot_id = #{parkingRecordQueryDto.parkingLotId} + AND t1.parking_lot_id = #{parkingRecordQueryDto.parkingLotId} + </if> + <if test="null != parkingRecordQueryDto.siteIds and parkingRecordQueryDto.siteIds.size()>0" > + and t2.site_id in + <foreach collection="parkingRecordQueryDto.siteIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> </if> GROUP BY time @@ -113,31 +120,39 @@ </select> <select id="parkingDataByDate" resultType="java.util.Map"> SELECT - DATE_FORMAT( create_time, '%Y-%m-%d' ) AS time, + DATE_FORMAT( t1.create_time, '%Y-%m-%d' ) AS time, count( 1 ) AS orders, - SUM( timeout_amount ) AS timeoutAmount + SUM( t1.timeout_amount ) AS timeoutAmount FROM - t_parking_record + t_parking_record t1 + left join t_parking_lot t2 on t2.id = t1.parking_lot_id <where> <if test="parkingRecordQueryDto.parkingLotId !=null"> - AND parking_lot_id = #{parkingRecordQueryDto.parkingLotId} + AND t1.parking_lot_id = #{parkingRecordQueryDto.parkingLotId} </if> <if test="parkingRecordQueryDto.dayType == 2"> - AND WEEKOFYEAR( create_time ) = WEEKOFYEAR( CURDATE() ) + AND WEEKOFYEAR( t1. + create_time ) = WEEKOFYEAR( CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 3"> - AND MONTH( create_time ) = MONTH(CURDATE()) + AND MONTH( t1.create_time ) = MONTH(CURDATE()) </if> <if test="parkingRecordQueryDto.dayType == 4"> - AND YEAR( create_time ) = YEAR(CURDATE() ) + AND YEAR( t1.create_time ) = YEAR(CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 5"> <if test="parkingRecordQueryDto.startTime != null"> - AND create_time >= #{parkingRecordQueryDto.startTime} + AND t1.create_time >= #{parkingRecordQueryDto.startTime} </if> <if test="parkingRecordQueryDto.endTime != null"> - AND create_time <= #{parkingRecordQueryDto.endTime} + AND t1.create_time <= #{parkingRecordQueryDto.endTime} </if> + </if> + <if test="null != parkingRecordQueryDto.siteIds and parkingRecordQueryDto.siteIds.size()>0" > + and t2.site_id in + <foreach collection="parkingRecordQueryDto.siteIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> </if> </where> GROUP BY @@ -149,102 +164,124 @@ </select> <select id="getCarColor" resultType="java.util.Map"> SELECT - vehicle_color,count(1) as counts + t1.vehicle_color,count(1) as counts FROM - t_parking_record + t_parking_record t1 + left join t_parking_lot t2 on t2.id = t1.parking_lot_id + <where> <if test="parkingRecordQueryDto.parkingLotId !=null"> - AND parking_lot_id = #{parkingRecordQueryDto.parkingLotId} + AND t1.parking_lot_id = #{parkingRecordQueryDto.parkingLotId} </if> <if test="parkingRecordQueryDto.dayType == 1"> - AND DATE( create_time ) = CURDATE() + AND DATE( t1.create_time ) = CURDATE() </if> <if test="parkingRecordQueryDto.dayType == 2"> - AND WEEKOFYEAR( create_time ) = WEEKOFYEAR( CURDATE() ) + AND WEEKOFYEAR( t1.create_time ) = WEEKOFYEAR( CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 3"> - AND MONTH( create_time ) = MONTH(CURDATE()) + AND MONTH( t1.create_time ) = MONTH(CURDATE()) </if> <if test="parkingRecordQueryDto.dayType == 4"> - AND YEAR( create_time ) = YEAR(CURDATE() ) + AND YEAR( t1.create_time ) = YEAR(CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 5"> <if test="parkingRecordQueryDto.startTime != null"> - AND create_time >= #{parkingRecordQueryDto.startTime} + AND t1.create_time >= #{parkingRecordQueryDto.startTime} </if> <if test="parkingRecordQueryDto.endTime != null"> - AND create_time <= #{parkingRecordQueryDto.endTime} + AND t1.create_time <= #{parkingRecordQueryDto.endTime} </if> </if> + <if test="null != parkingRecordQueryDto.siteIds and parkingRecordQueryDto.siteIds.size()>0" > + and t2.site_id in + <foreach collection="parkingRecordQueryDto.siteIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> </where> - GROUP BY vehicle_color + GROUP BY t1.vehicle_color </select> <select id="getOutType" resultType="java.util.Map"> SELECT - out_parking_type,count(1) as counts + t1.out_parking_type,count(1) as counts FROM - t_parking_record + t_parking_record t1 + left join t_parking_lot t2 on t2.id = t1.parking_lot_id <where> <if test="parkingRecordQueryDto.parkingLotId !=null"> - AND parking_lot_id = #{parkingRecordQueryDto.parkingLotId} + AND t1.parking_lot_id = #{parkingRecordQueryDto.parkingLotId} </if> <if test="parkingRecordQueryDto.dayType == 1"> - AND DATE( create_time ) = CURDATE() + AND DATE( t1.create_time ) = CURDATE() </if> <if test="parkingRecordQueryDto.dayType == 2"> - AND WEEKOFYEAR( create_time ) = WEEKOFYEAR( CURDATE() ) + AND WEEKOFYEAR( t1.create_time ) = WEEKOFYEAR( CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 3"> - AND MONTH( create_time ) = MONTH(CURDATE()) + AND MONTH( t1.create_time ) = MONTH(CURDATE()) </if> <if test="parkingRecordQueryDto.dayType == 4"> - AND YEAR( create_time ) = YEAR(CURDATE() ) + AND YEAR( t1.create_time ) = YEAR(CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 5"> <if test="parkingRecordQueryDto.startTime != null"> - AND create_time >= #{parkingRecordQueryDto.startTime} + AND t1.create_time >= #{parkingRecordQueryDto.startTime} </if> <if test="parkingRecordQueryDto.endTime != null"> - AND create_time <= #{parkingRecordQueryDto.endTime} + AND t1.create_time <= #{parkingRecordQueryDto.endTime} </if> </if> + <if test="null != parkingRecordQueryDto.siteIds and parkingRecordQueryDto.siteIds.size()>0" > + and t2.site_id in + <foreach collection="parkingRecordQueryDto.siteIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> </where> - GROUP BY out_parking_type + GROUP BY t1.out_parking_type </select> <select id="getIsCharge" resultType="java.util.Map"> SELECT CASE - WHEN charging_order_id IS NOT NULL THEN 'WithChargingOrder' + WHEN t1.charging_order_id IS NOT NULL THEN 'WithChargingOrder' ELSE 'WithoutChargingOrder' END AS order_status, COUNT(*) AS counts FROM - `t_parking_record` + `t_parking_record` t1 + left join t_parking_lot t2 on t2.id = t1.parking_lot_id <where> <if test="parkingRecordQueryDto.parkingLotId !=null"> - AND parking_lot_id = #{parkingRecordQueryDto.parkingLotId} + AND t1.parking_lot_id = #{parkingRecordQueryDto.parkingLotId} </if> <if test="parkingRecordQueryDto.dayType == 1"> - AND DATE( create_time ) = CURDATE() + AND DATE( t1.create_time ) = CURDATE() </if> <if test="parkingRecordQueryDto.dayType == 2"> - AND WEEKOFYEAR( create_time ) = WEEKOFYEAR( CURDATE() ) + AND WEEKOFYEAR( t1.create_time ) = WEEKOFYEAR( CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 3"> - AND MONTH( create_time ) = MONTH(CURDATE()) + AND MONTH( t1.create_time ) = MONTH(CURDATE()) </if> <if test="parkingRecordQueryDto.dayType == 4"> - AND YEAR( create_time ) = YEAR(CURDATE() ) + AND YEAR( t1.create_time ) = YEAR(CURDATE() ) </if> <if test="parkingRecordQueryDto.dayType == 5"> <if test="parkingRecordQueryDto.startTime != null"> - AND create_time >= #{parkingRecordQueryDto.startTime} + AND t1.create_time >= #{parkingRecordQueryDto.startTime} </if> <if test="parkingRecordQueryDto.endTime != null"> - AND create_time <= #{parkingRecordQueryDto.endTime} + AND t1.create_time <= #{parkingRecordQueryDto.endTime} </if> </if> + <if test="null != parkingRecordQueryDto.siteIds and parkingRecordQueryDto.siteIds.size()>0" > + and t2.site_id in + <foreach collection="parkingRecordQueryDto.siteIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> </where> GROUP BY order_status diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index f9031b0..4089d09 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -176,15 +176,81 @@ } return R.ok(); } - + @RequiresPermissions(value = {"/invoiceManagement/select_order", "/paymentOrder/order"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/pay/order/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"}) public R<PageInfo<PayOrderDto>> payOrderList(@RequestBody PayOrderQueryDto payOrderQueryDto) { - return chargingOrderService.payOrderQuery(payOrderQueryDto); + Integer pageCurr = payOrderQueryDto.getPageCurr(); + Integer pageSize = payOrderQueryDto.getPageSize(); + payOrderQueryDto.setPageCurr(1); + payOrderQueryDto.setPageSize(10000999); + PageInfo<PayOrderDto> data = chargingOrderService.payOrderQuery(payOrderQueryDto).getData(); + List<PayOrderDto> res = new ArrayList<>(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); + Long userId = tokenService.getLoginUser().getUserid(); + //如果没传siteId,获取当前登陆人所有的siteIds + List<Integer> siteIds = new ArrayList<>(); + if (userId != null){ + List<GetSiteListDTO> data2 = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data2) { + siteIds.add(datum.getId()); + } + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + } + + for (PayOrderDto record : data.getRecords()) { + if (record.getType() == 1){ + TChargingOrder byId = chargingOrderService.getById(record.getId()); + record.setSiteId(byId.getSiteId()); + } + if (record.getType()==4){ + Integer siteId=parkingLotClient.getSiteIdByOrderId(Long.valueOf(record.getId())).getData(); + if (siteId!=null){ + record.setSiteId(siteId); + } + } + if (roleType==1||(record.getType()!=1&&record.getType()!=4)){ + res.add(record); + continue; + } + if (roleType==2 && (record.getType()==1||record.getType()==4) && siteIds.contains(record.getSiteId())){ + res.add(record); + } + + } + List<PayOrderDto> res1 = testing5(res.size(), pageCurr, pageSize, res); + data.setTotal(res.size()); + data.setRecords(res1); + return R.ok(data); } +public static List<PayOrderDto> testing5(long total, long current, long size, List<PayOrderDto> str){ + List<PayOrderDto> result = new ArrayList<>(); + //获取初始化分页结构 + com.ruoyi.order.util.Page<PayOrderDto> page = new com.ruoyi.order.util.Page().getPage(total, size, current - 1); + //获取集合下标初始值 + long startIndex = page.getStartIndex(); + //获取集合下标结束值 + long endInddex = 0; + if(startIndex + page.getCurrent() >= total || size > total){ + endInddex = total; + }else { + endInddex = Math.min(startIndex + page.getSize(), total); + } + //如果输入的开始查询下标大于集合大小,则查询为空值 + if(startIndex > total){ + result = Collections.emptyList(); + }else{ + result = str.subList((int)startIndex,(int)endInddex); + } + return result; +} @ResponseBody @PostMapping(value = "/pay/order/refund") @ApiOperation(value = "退款", tags = {"管理后台-支付订单-订单信息"}) @@ -330,7 +396,12 @@ @PostMapping(value = "/pay/order/refund/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-退款订单"}) public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto) { - R<PageInfo<TChargingOrderRefund>> refundList = chargingOrderService.getRefundList(chargingRefundDto); + Integer pageCurr = chargingRefundDto.getPageCurr(); + Integer pageSize = chargingRefundDto.getPageSize(); +// R<PageInfo<TChargingOrderRefund>> refundList = chargingOrderService.getRefundList(chargingRefundDto); + chargingRefundDto.setPageCurr(1); + chargingRefundDto.setPageSize(199999999); + R<PageInfo<TChargingOrderRefund>> refundList1 = chargingOrderService.getRefundList(chargingRefundDto); Long userId = tokenService.getLoginUser().getUserid(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); @@ -344,17 +415,56 @@ if (siteIds.isEmpty()){ siteIds.add(-1); } + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); List<TChargingOrderRefund> tChargingOrderRefunds = new ArrayList<>(); - for (TChargingOrderRefund record : refundList.getData().getRecords()) { - TChargingOrder byId = chargingOrderService.getById(record.getChargingOrderId()); + for (TChargingOrderRefund record : refundList1.getData().getRecords()) { + if (roleType==1){ + tChargingOrderRefunds.add(record); + continue; + } + if (record.getType()!=1){ + tChargingOrderRefunds.add(record); + } + TChargingOrder byId = chargingOrderService.getById(record.getOrderId()); record.setUid(record.getId().toString()); - if (siteIds.contains(byId.getSiteId())){ + if (byId==null){ + continue; + } + if (roleType==2&&siteIds.contains(byId.getSiteId())){ + tChargingOrderRefunds.add(record); } } - refundList.getData().setRecords(tChargingOrderRefunds); - return refundList; + PageInfo<TChargingOrderRefund> data = refundList1.getData(); + List<TChargingOrderRefund> res1 = testing4(tChargingOrderRefunds.size(), pageCurr, pageSize, tChargingOrderRefunds); + data.setTotal(tChargingOrderRefunds.size()); + data.setRecords(res1); + return refundList1; + + } + public static List<TChargingOrderRefund> testing4(long total, long current, long size, List<TChargingOrderRefund> str){ + List<TChargingOrderRefund> result = new ArrayList<>(); + //获取初始化分页结构 + com.ruoyi.order.util.Page<TChargingOrderRefund> page = new com.ruoyi.order.util.Page().getPage(total, size, current - 1); + //获取集合下标初始值 + long startIndex = page.getStartIndex(); + //获取集合下标结束值 + long endInddex = 0; + if(startIndex + page.getCurrent() >= total || size > total){ + endInddex = total; + }else { + endInddex = Math.min(startIndex + page.getSize(), total); + } + //如果输入的开始查询下标大于集合大小,则查询为空值 + if(startIndex > total){ + result = Collections.emptyList(); + }else{ + result = str.subList((int)startIndex,(int)endInddex); + } + return result; } @ResponseBody @PostMapping(value = "/pay/order/refund/list1") @@ -857,6 +967,8 @@ @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"}) public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) { Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); List<Integer> siteIds = new ArrayList<>(); if (mongoChargingOrderQuery.getSiteId()==null){ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData(); @@ -866,6 +978,25 @@ }else { siteIds.add(mongoChargingOrderQuery.getSiteId()); } + if (siteIds.isEmpty()){ + siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.watchChargingOrder(sysUser.getObjectId(),siteId).getData(); + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + } mongoChargingOrderQuery.setSiteIds(siteIds); mongoChargingOrderQuery.setPageSize(10); R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery); @@ -873,8 +1004,7 @@ List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); Map<String,ChargingOrderVO> map = new HashMap<>(); - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1.getRecords()) { if (roleType==2){ List<Boolean> data = partnerClient.watchChargingOrder(sysUser.getObjectId(), uploadRealTimeMonitoringData.getSiteId()).getData(); @@ -968,6 +1098,7 @@ }else { siteIds.add(statisticsQueryDto.getSiteId()); } + if (siteIds.isEmpty())siteIds.add(-1); TCharingOrderMapVO tCharingOrderMapVO = new TCharingOrderMapVO(); @@ -1231,6 +1362,7 @@ }else { siteIds.add(statisticsQueryDto.getSiteId()); } + if (siteIds.isEmpty())siteIds.add(-1); statisticsQueryDto.setSiteIds(siteIds); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java index 75fedb2..ec9cff0 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java @@ -36,10 +36,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; +import java.util.*; /** * <p> @@ -97,19 +94,27 @@ @ApiOperation(tags = {"后台-订单管理-订单申诉"},value = "列表") @PostMapping(value = "/manage/pageList") public R<Page<TOrderAppeal>> managePageList(@RequestBody ManageOrderAppealQuery manageOrderAppealQuery) { + Integer pageCurr = manageOrderAppealQuery.getPageCurr(); + Integer pageSize = manageOrderAppealQuery.getPageSize(); Page<TOrderAppeal> page = orderAppealService.lambdaQuery().eq(manageOrderAppealQuery.getStatus() != null, TOrderAppeal::getStatus, manageOrderAppealQuery.getStatus()) .like(manageOrderAppealQuery.getCode() != null, TOrderAppeal::getCode, manageOrderAppealQuery.getCode()) .like(manageOrderAppealQuery.getPhone() != null, TOrderAppeal::getPhone, manageOrderAppealQuery.getPhone()) .eq(manageOrderAppealQuery.getOrderType() != null, TOrderAppeal::getOrderType, manageOrderAppealQuery.getOrderType()) .in(TOrderAppeal::getOrderType, 1, 2) .orderByDesc(TOrderAppeal::getCreateTime) - .page(Page.of(manageOrderAppealQuery.getPageCurr(), manageOrderAppealQuery.getPageSize())); + .page(Page.of(1, 99999999)); SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); Integer roleType = sysUser.getRoleType(); List<TOrderAppeal> res = new ArrayList<>(); for (TOrderAppeal record : page.getRecords()) { + record.setUid(record.getId()+""); if (record.getOrderType()!=1){ res.add(record); + continue; + } + if(roleType!=2){ + res.add(record); + continue; } if (roleType == 2 && record.getOrderType()==1){ List<Integer> siteIds = new ArrayList<>(); @@ -121,6 +126,21 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.managePageListMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(2); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } + if (siteIds.isEmpty()){ + siteIds.add(-1); } TChargingOrder byId = chargingOrderService.getById(record.getOrderId()); if (byId!=null&&siteIds.contains(byId.getSiteId())){ @@ -130,18 +150,40 @@ record.setAuthInfo(data.get(0)); record.setAuthHandle(data.get(1)); } - - }else{ - res.add(record); + if (byId==null){ + record.setAuthInfo(false); + record.setAuthHandle(false); + } } - record.setUid(record.getId().toString()); } - + List<TOrderAppeal> res1 = testing4(res.size(), pageCurr, pageSize, res); + page.setCurrent(pageCurr); + page.setSize(pageSize); + page.setTotal(res.size()); + page.setRecords(res1); return R.ok(page); - - } - + public static List<TOrderAppeal> testing4(long total, long current, long size, List<TOrderAppeal> str){ + List<TOrderAppeal> result = new ArrayList<>(); + //获取初始化分页结构 + com.ruoyi.order.util.Page<TOrderAppeal> page = new com.ruoyi.order.util.Page().getPage(total, size, current - 1); + //获取集合下标初始值 + long startIndex = page.getStartIndex(); + //获取集合下标结束值 + long endInddex = 0; + if(startIndex + page.getCurrent() >= total || size > total){ + endInddex = total; + }else { + endInddex = Math.min(startIndex + page.getSize(), total); + } + //如果输入的开始查询下标大于集合大小,则查询为空值 + if(startIndex > total){ + result = Collections.emptyList(); + }else{ + result = str.subList((int)startIndex,(int)endInddex); + } + return result; + } @RequiresPermissions(value = {"/appealOrder/del"}, logical = Logical.OR) @ApiOperation(tags = {"后台-订单管理-订单申诉"},value = "删除") diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java index ad43d21..cfc9ff3 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java @@ -13,6 +13,8 @@ private String id; @ApiModelProperty("1充电订单2购物订单3vip订单4停车订单") private Integer type; + @ApiModelProperty("站点id") + private Integer siteId; @ApiModelProperty("订单编号") private String code; @ApiModelProperty("订单标题") diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java index 0e4c450..083d681 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java @@ -102,6 +102,9 @@ startTime2 = split[1]; } Long userId = tokenService.getLoginUser().getUserid(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); List<Integer> siteIds = new ArrayList<>(); //如果没传siteId,获取当前登陆人所有的siteIds if (dto.getSiteId()==null){ @@ -116,7 +119,22 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.getAccountMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } } + if (siteIds.isEmpty())siteIds.add(-1); dto.setSiteIds(siteIds); @@ -135,13 +153,11 @@ BigDecimal chargingCapacityTotal = new BigDecimal("0"); BigDecimal discountTotal = new BigDecimal("0"); int orderCount = 0; - // 查询当前登陆人按钮权限 - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (ChargingBillListVO chargingBillListVO : list) { if (roleType==2){ - Boolean data = partnerClient.getAccountMenu(sysUser.getObjectId(), chargingBillListVO.getSiteId()).getData(); - chargingBillListVO.setAuthDownLoad(data); + List<Boolean> data = partnerClient.getAccountMenu(sysUser.getObjectId(), chargingBillListVO.getSiteId()).getData(); + chargingBillListVO.setAuthDownLoad(data.get(0)); if (chargingBillListVO.getType()==1){ continue; } @@ -518,9 +534,11 @@ PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999); Long userId = tokenService.getLoginUser().getUserid(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); - //如果没传siteId,获取当前登陆人所有的siteIds if (dto.getSiteId()==null){ if (userId != null){ @@ -534,7 +552,28 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } } + + if (roleType==1){ + siteIds.add(0); + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + } dto.setSiteIds(siteIds); List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2); @@ -549,13 +588,14 @@ BigDecimal discountTotal = new BigDecimal("0"); BigDecimal refundAmountTotal = new BigDecimal("0"); int orderCount = 0; - // 查询当前登陆人按钮权限 - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + List<ChargingBillListVO> chargingBillListVOS = new ArrayList<>(); for (ChargingBillListVO chargingBillListVO : list) { if (roleType==2 && chargingBillListVO.getSiteId()!=0){ + chargingBillListVOS.add(chargingBillListVO); + } + if (roleType ==1 && (siteIds.contains(chargingBillListVO.getSiteId())|| chargingBillListVO.getSiteId()==0)){ chargingBillListVOS.add(chargingBillListVO); } } @@ -565,9 +605,8 @@ } if (roleType == 2){ // 校验有没有这个站点的权限 - Boolean t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),chargingBillListVO.getSiteId()).getData(); - chargingBillListVO.setAuthDownLoad(t1); - + List<Boolean> t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),chargingBillListVO.getSiteId()).getData(); + chargingBillListVO.setAuthDownLoad(t1.get(0)); if (chargingBillListVO.getSiteId()==0){ continue; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index da641ce..e21b823 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -1215,6 +1215,9 @@ dto.setUserIds(data); } Long userId = tokenService.getLoginUser().getUserid(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); if (dto.getSiteId()==null){ @@ -1229,7 +1232,22 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } } + if (siteIds.isEmpty())siteIds.add(-1); dto.setSiteIds(siteIds); List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2); @@ -1241,14 +1259,15 @@ BigDecimal commissionMoney = new BigDecimal("0"); BigDecimal refundMoney = new BigDecimal("0"); BigDecimal paymentMoney = new BigDecimal("0"); - // 查询当前登陆人按钮权限 - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (ChargingOrderVO chargingOrderVO : list) { if (roleType == 2){ - // 校验有没有这个站点的权限 - Boolean t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),chargingOrderVO.getSiteId()).getData(); - chargingOrderVO.setAuthRecord(t1); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData(); + chargingOrderVO.setAuthRecord(t1.get(0)); + } + } chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0")); chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); @@ -1445,6 +1464,9 @@ } } Long userId = tokenService.getLoginUser().getUserid(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); if (dto.getSiteId()==null){ @@ -1459,13 +1481,25 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } } dto.setSiteIds(siteIds); PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); - // 查询当前登陆人按钮权限 - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (ChargingOrderListVO chargingOrderListVO : list) { if (roleType==2){ List<Boolean> data = partnerClient.getChargingListMenu(sysUser.getObjectId(), chargingOrderListVO.getSiteId()).getData(); @@ -2738,6 +2772,9 @@ dto.setStartTime(startTime); dto.setEndTime(endTime); Long userId = tokenService.getLoginUser().getUserid(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); if (dto.getSiteIds()==null){ @@ -2752,13 +2789,25 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.getSettlementListMenu(sysUser.getObjectId(),siteId).getData(); + + Boolean b = t1.get(2); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } } dto.setSiteIdss(siteIds); PageInfo<TSettlementConfirm> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<TSettlementConfirm> list = tSettlementConfirmMapper.settlementList(pageInfo,dto); - // 查询当前登陆人按钮权限 - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (TSettlementConfirm tSettlementConfirm : list) { if (roleType==2){ List<Boolean> data = partnerClient.getSettlementListMenu(sysUser.getObjectId(), tSettlementConfirm.getSiteId()).getData(); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java index 5284e39..c79a059 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java @@ -254,8 +254,9 @@ tagList.add(evaluationTagVO); } } - - + + @Resource + private PartnerClient partnerClient; /** * 获取充电评价列表 * @param pageList @@ -295,6 +296,20 @@ } if (siteIds.isEmpty()){ siteIds.add(-1); + }else{ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.chargeEvaluation(sysUser.getObjectId(),siteId).getData(); + Boolean b = t1.get(0); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } + if (siteIds.isEmpty()){ + siteIds.add(-1); } List<GetOrderEvaluatePageListDTO> list = this.baseMapper.getPageList(pageList, evaluationTagIds, siteIds, pageInfo); for (GetOrderEvaluatePageListDTO dto : list) { diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/Page.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/Page.java new file mode 100644 index 0000000..c358ffe --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/Page.java @@ -0,0 +1,35 @@ +package com.ruoyi.order.util; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Page<T> implements Serializable { + + private List<T> records; //最终查询的结果记录 + private long total; //共有多少条记录 + private long size; //一页显示多少条 + private long current; //取第几页显示 + private long pages; //总共几页 + private long startIndex; //从哪里开始截取集合的下标 + //获取初始化分页对象 这里用long类型是为了与mybatisplus保持一致 + public Page<String> getPage(long total, long size ,long current){ + Page<String> page = new Page<>(); + page.setTotal(total); + page.setSize(size); + //总页数的计算 如果集合总记录数能被入参size(一页几条)整除,则为对应商,否则多出部分也独立算一页 + page.setPages(total % size == 0 ? total / size : total / size + 1); + //前端约定入参从1开始,但此处入参调用时会减1,此处+1恢复原值供前端展示 + page.setCurrent(current + 1); + //开始索引的设置 + page.setStartIndex(size * current); + return page; + } + +} \ No newline at end of file diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml index a255704..cd121be 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml @@ -9,7 +9,7 @@ <if test="req.type != null and req.type!=0"> and t1.type = #{req.type} </if> - <if test="req.state != null "> + <if test="req.state != null "> and t1.status = #{req.state} </if> <if test="startTime1 != null and startTime1!=''"> diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index 61a8670..6ed6f33 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -248,7 +248,8 @@ co.payment_amount, co.create_time as pay_time, co.id as order_id, - co.app_user_id as user_id + co.app_user_id as user_id, + 1 as type FROM t_charging_order_refund re LEFT JOIN t_charging_order co ON re.charging_order_id = co.id UNION ALL @@ -267,7 +268,8 @@ so.payment_amount, so.create_time as pay_time, so.id as order_id, - so.app_user_id as user_id + so.app_user_id as user_id, + 2 as type FROM t_shopping_order_refund re LEFT JOIN t_shopping_order so on re.shopping_order_id = so.id UNION ALL @@ -286,7 +288,8 @@ vo.payment_amount, vo.create_time as pay_time, vo.id as order_id, - vo.app_user_id as user_id + vo.app_user_id as user_id, + 3 as type FROM t_vip_order_refund vr LEFT JOIN t_vip_order vo on vr.vip_order_id = vo.id -- Gitblit v1.7.1