ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java
@@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.List; import java.util.Set; @@ -39,6 +40,31 @@ public Boolean authMenu(Integer partnerId, Integer siteId, String siteMenu) { return false; } }; @Override public R<Boolean> getChargingBillMenu(Integer partnerId, Integer siteId) { return R.fail("获取合作商授权的充电算帐单按钮权限失败:" + throwable.getMessage()); } @Override public R<Boolean> getChargingOrderMenu(Integer partnerId, Integer siteId) { return null; } @Override public R<List<Boolean>> getChargingListMenu(Integer partnerId, Integer siteId) { return null; } @Override public R<List<Boolean>> getSettlementListMenu(Integer partnerId, Integer siteId) { return null; } @Override public R<Boolean> getAccountMenu(Integer partnerId, Integer siteId) { return null; } }; } } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java
@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Set; /** @@ -47,4 +48,14 @@ */ @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); @PostMapping("/partner/getChargingOrderMenu/{partnerId}/{siteId}") R<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); } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingBillListVO.java
@@ -41,4 +41,6 @@ private BigDecimal chargingCapacity; @ApiModelProperty(value = "入账金额") private BigDecimal billMoney; @ApiModelProperty(value = "下载按钮权限 ") private Boolean authDownLoad = true; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -88,4 +88,8 @@ private Long id; @ApiModelProperty(value = "订单uid") private String uid; @ApiModelProperty(value = "订单详情按钮权限 ") private Boolean authInfo = true; @ApiModelProperty(value = "充电曲线按钮权限 ") private Boolean authCurve = true; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
@@ -30,6 +30,8 @@ private String phone; @ApiModelProperty(value = "uid") private String uid; @ApiModelProperty(value = "记录按钮权限 ") private Boolean authRecord = true; @ApiModelProperty(value = "时段数") ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
@@ -4,11 +4,15 @@ import com.ruoyi.chargingPile.api.dto.GetPermissionConfigurationDTO; import com.ruoyi.chargingPile.api.dto.PartnerListDTO; import com.ruoyi.chargingPile.api.model.Partner; import com.ruoyi.chargingPile.api.model.TPartnerSite; import com.ruoyi.chargingPile.api.model.TSiteMenu; import com.ruoyi.chargingPile.api.query.GetPartnerList; import com.ruoyi.chargingPile.api.query.SetPermissionConfiguration; import com.ruoyi.chargingPile.api.domain.SiteMenu; import com.ruoyi.chargingPile.dto.ResetPassword; import com.ruoyi.chargingPile.service.IPartnerService; import com.ruoyi.chargingPile.service.TPartnerSiteService; import com.ruoyi.chargingPile.service.TSiteMenuService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; @@ -27,6 +31,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -43,8 +48,11 @@ @Resource private SysUserClient sysUserClient; @Resource private TSiteMenuService siteMenuService; @Resource private TPartnerSiteService partnerSiteService; @@ -204,4 +212,86 @@ public Boolean authMenu(@PathVariable("partnerId") Integer partnerId, @RequestParam("siteId") Integer siteId, @RequestParam("siteMenu") String siteMenu){ return partnerService.authMenu(partnerId, siteId, SiteMenu.getSiteMenu(siteMenu)); } // 充电算帐单按钮权限 @PostMapping("/getChargingBillMenu/{partnerId}/{siteId}") R<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); } // 充电时段统计按钮权限 @PostMapping("/getChargingListMenu/{partnerId}/{siteId}") R<List<Boolean>> getChargingListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List<Boolean> booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/charging_period_statistics/order_info").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_period_statistics/charging_curve").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.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); } 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}") R<List<Boolean>> getSettlementListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List<Boolean> booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, "/data/balance_sheet_record/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/balance_sheet_record/del").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper<TPartnerSite>() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.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); } 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); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -7,6 +7,7 @@ import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.feignClient.PartnerClient; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; @@ -78,6 +79,8 @@ private TChargingOrderRefundService chargingOrderRefundService; @Resource private TokenService tokenService; @Resource private PartnerClient partnerClient; @Override @@ -137,7 +140,14 @@ 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); } String temp = ""; String temp1 = ""; switch (chargingBillListVO.getType()){ @@ -509,10 +519,7 @@ Long userId = tokenService.getLoginUser().getUserid(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); if (dto.getType() == 1){ siteIds.add(0); dto.setSiteIds(siteIds); }else{ //如果没传siteId,获取当前登陆人所有的siteIds if (dto.getSiteId()==null){ if (userId != null){ @@ -528,7 +535,7 @@ siteIds.add(-1); } dto.setSiteIds(siteIds); } List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2); List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList(pageInfo1,dto,startTime1,startTime2); BigDecimal paymentAmountTotal = new BigDecimal("0"); @@ -544,12 +551,26 @@ // 查询当前登陆人按钮权限 SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); R<Integer> admin = sysUserClient.isAdmin(tokenService.getLoginUser().getUserid()); if(roleType == 2){ // 合作商 判断有没有这个站点的按钮权限 } List<ChargingBillListVO> chargingBillListVOS = new ArrayList<>(); for (ChargingBillListVO chargingBillListVO : list) { if (roleType==2 && chargingBillListVO.getSiteId()!=0){ chargingBillListVOS.add(chargingBillListVO); } } for (ChargingBillListVO chargingBillListVO : chargingBillListVOS) { if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ continue; } if (roleType == 2){ // 校验有没有这个站点的权限 Boolean t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),chargingBillListVO.getSiteId()).getData(); chargingBillListVO.setAuthDownLoad(t1); if (chargingBillListVO.getSiteId()==0){ continue; } } String temp = ""; String temp1 = ""; switch (chargingBillListVO.getType()){ @@ -773,8 +794,13 @@ chargingBillListVO.setChargingSecond(chargingSecond); } for (ChargingBillListVO chargingBillListVO : list1) { if (!siteIds.contains(chargingBillListVO.getSiteId())){ if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ continue; } if (roleType == 2){ if (chargingBillListVO.getSiteId()==0){ continue; } } LocalDateTime billTime = chargingBillListVO.getBillTime(); // 将其转化为yyyy-MM格式字符串 @@ -873,7 +899,7 @@ chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, BigDecimal.ROUND_DOWN)); chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, BigDecimal.ROUND_DOWN)); chargingBillVO.setDiscount(discountTotal.setScale(2, BigDecimal.ROUND_DOWN)); pageInfo.setRecords(list); pageInfo.setRecords(chargingBillListVOS); chargingBillVO.setList(pageInfo); return chargingBillVO; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -60,6 +60,8 @@ import com.ruoyi.payment.api.model.RefundResp; import com.ruoyi.payment.api.model.WxPaymentRefundModel; import com.ruoyi.payment.api.vo.*; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -100,7 +102,8 @@ private ChargingGunClient chargingGunClient; @Resource private TSettlementConfirmMapper tSettlementConfirmMapper; @Resource private PartnerClient partnerClient; @Resource private SiteClient siteClient; @@ -1238,7 +1241,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); } 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")); chargingOrderVO.setUid(chargingOrderVO.getId()+""); @@ -1388,7 +1399,8 @@ return this.baseMapper.getYearData(chargingOrderIds); } @Resource private SysUserClient sysUserClient; @Override public ChargingOrderTimeVO chargingList(ChargingListQuery dto) { String startTime1 = null; @@ -1451,7 +1463,15 @@ 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(); chargingOrderListVO.setAuthInfo(data.get(0)); chargingOrderListVO.setAuthCurve(data.get(1)); } chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity()); BigDecimal bigDecimal = new BigDecimal("0.006"); if (chargingOrderListVO.getOrderAmount()!=null){ @@ -2736,7 +2756,15 @@ 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(); tSettlementConfirm.setAuthDownLoad(data.get(0)); tSettlementConfirm.setAuthDelete(data.get(1)); } tSettlementConfirm.setUid(tSettlementConfirm.getId().toString()); List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData(); if (!data1.isEmpty()){