Pu Zhibing
2024-12-12 7c0967daf92243b86f2c0a2435b127287358d9c4
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
8个文件已修改
221 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingBillListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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()){