无关风月
2024-12-11 4d7a208f388e42e7dd83dab0e38eadfa0847de1c
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -25,6 +25,8 @@
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.web.domain.BasePojo;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -137,6 +139,12 @@
    
    @Resource
    private TOrderInvoiceService invoiceService;
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    /**
     * 远程调用 增加管理后台赠送会员记录
@@ -169,6 +177,9 @@
        }
        return R.ok();
    }
    @RequiresPermissions(value = {"/invoiceManagement/select_order", "/paymentOrder/order"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/pay/order/list")
    @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"})
@@ -181,7 +192,9 @@
    public R refund(@RequestBody PayOrderRefundDto payOrderQueryDto) {
        return chargingOrderService.payRefund(payOrderQueryDto);
    }
    @RequiresPermissions(value = {"/paymentOrder/order"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/pay/order/pay/detail")
    @ApiOperation(value = "支付信息", tags = {"管理后台-支付订单-订单信息"})
@@ -310,9 +323,10 @@
        return R.ok(list);
    }
    @RequiresPermissions(value = {"/paymentOrder/refund"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/pay/order/refund/list")
    @ApiOperation(value = "列表", tags = {"管理后台-支付订单-退款订单"})
@@ -331,12 +345,13 @@
        return chargingOrderService.getRefundList(chargingRefundDto);
    }
    @RequiresPermissions(value = {"/chargingPileOrder"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/chargingOrder")
    @ApiOperation(value = "充电桩订单列表", tags = {"管理后台-订单管理"})
@@ -346,7 +361,9 @@
        TCharingOrderVO res = chargingOrderService.chargingOrder(dto);
        return AjaxResult.success(res);
    }
    @RequiresPermissions(value = {"/chargingPileOrder/monitoring_record"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/chargingOrderInfo")
    @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"})
@@ -485,6 +502,11 @@
    @GetMapping(value = "/getMyChargingOrderInfo")
    @ApiOperation(value = "获取充电记订单明细", tags = {"小程序-充电记录"})
    public AjaxResult<MyChargingOrderInfo> getMyChargingOrderInfo(String id) {
        TChargingOrder tChargingOrder = chargingOrderService.getById(id);
        Long userId = tokenService.getLoginUserApplet().getUserId();
        if(!tChargingOrder.getAppUserId().equals(userId)){
            return AjaxResult.error("权限不足");
        }
        MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo(id);
        return AjaxResult.success(myChargingOrderInfo);
    }
@@ -548,21 +570,10 @@
     */
    @ResponseBody
    @PostMapping(value = "/chargingOrderALICallback")
    public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) {
        try {
            String out_trade_no = aliQueryOrder.getOutTradeNo();
            String transaction_id = aliQueryOrder.getTradeNo();
            String attach = aliQueryOrder.getPassbackParams();
            AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
            if (ajaxResult.isSuccess()) {
                PrintWriter writer = response.getWriter();
                writer.println("success");
                writer.flush();
                writer.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    public void chargingOrderALICallback(@RequestParam("out_trade_no") String out_trade_no,
                                         @RequestParam("transaction_id") String transaction_id,
                                         @RequestParam("attach") String attach) {
        chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
    }
    
    
@@ -642,12 +653,13 @@
    
    
    
    @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/six/charge")
    @ApiOperation(value = "电站收入分析", tags = {"后台-数据分析-平台收入分析"})
    public R<List<SixChargingDto>> charge(Integer siteId) {
        Long userId = SecurityUtils.getUserId();
        Long userId = tokenService.getLoginUser().getUserid();
        //如果没传siteId,获取当前登陆人所有的siteIds
        List<Integer> siteIds = new ArrayList<>();
        if (siteId==null){
@@ -657,6 +669,9 @@
            }
        }else {
            siteIds.add(siteId);
        }
        if (siteIds.isEmpty()){
            siteIds.add(-1);
        }
        LocalDate sixBefore = PreviousSixMonths.get();
        //通过siteIds进行sql查询统计
@@ -691,12 +706,13 @@
        return months;
    }
    @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/six/circle")
    @ApiOperation(value = "电站收入占比", tags = {"后台-数据分析-平台收入分析"})
    public R<List<SixCircleDto>> circle() {
        Long userId = SecurityUtils.getUserId();
        Long userId = tokenService.getLoginUser().getUserid();
        //获取当前登录的siteIds
        List<Integer> siteIds = new ArrayList<>();
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
@@ -714,8 +730,9 @@
        return R.ok(sixCircleDtos);
    }
    @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/six/shop")
    @ApiOperation(value = "购物收入", tags = {"后台-数据分析-平台收入分析"})
@@ -751,7 +768,9 @@
        return months;
    }
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/work/shop")
    @ApiOperation(value = "购物收入", tags = {"后台-工作台"})
@@ -761,7 +780,8 @@
        List<Map<String,Object >> shopData =  shoppingOrderService.getData(statisticsQueryDto);
        return R.ok(shopData);
    }
    @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/six/vip")
    @ApiOperation(value = "vip收入", tags = {"后台-数据分析-平台收入分析"})
@@ -771,7 +791,9 @@
        List<SixVipDto> vipDtos =  vipOrderService.sixBefore(sixBefore);
        return R.ok(vipDtos);
    }
    @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/six/total")
    @ApiOperation(value = "底部数据分类", tags = {"后台-数据分析-平台收入分析"})
@@ -793,14 +815,24 @@
        return R.ok(map);
    }
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    @RequiresPermissions(value = {"/chargeOrderMonitoring"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/watch/chargingOrder")
    @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"})
    public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) {
        Long userid = tokenService.getLoginUser().getUserid();
        List<Integer> siteIds = new ArrayList<>();
        if (mongoChargingOrderQuery.getSiteId()==null){
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData();
            for (GetSiteListDTO datum : data) {
                siteIds.add(datum.getId());
            }
        }else {
            siteIds.add(mongoChargingOrderQuery.getSiteId());
        }
        mongoChargingOrderQuery.setSiteIds(siteIds);
        mongoChargingOrderQuery.setPageSize(10);
        R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery);
        UploadRealTimeMonitoringPageData data1 = all.getData();
@@ -846,9 +878,9 @@
        return R.ok(page);
    }
    @RequiresPermissions(value = {"/chargeOrderMonitoring/del"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/watch/deletes")
    @ApiOperation(value = "监控订单-删除", tags = {"管理后台-订单管理"})
@@ -875,18 +907,18 @@
        return R.ok(chargingOrderService.getOne(Wrappers.lambdaQuery(TChargingOrder.class)
                .eq(TChargingOrder::getCode,code)));
    }
    @RequiresPermissions(value = {"/chargingOperationAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/charging/statistics")
    @ApiOperation(value = "统计,充电订单分析", tags = {"管理后台-数据分析-充电运营分析"})
    public R<TCharingOrderMapVO> watchChargingOrder(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){
        List<Integer> siteIds =new ArrayList<>();
        if (statisticsQueryDto.getSiteId()==null) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1118,7 +1150,7 @@
    public R<TCharingOrderPowerMapVO> power(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
        List<Integer> siteIds = new ArrayList<>();
        if (statisticsQueryDto.getSiteId() == null) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1140,17 +1172,31 @@
        return R.ok(tCharingOrderPowerMapVO);
    }
    @RequiresPermissions(value = {"/chargingUserAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/charging/users")
    @ApiOperation(value = "除电站流量外", tags = {"管理后台-数据分析-充电用户分析"})
    public R<TCharingUserMapVO> users(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){
        Long userId = tokenService.getLoginUserApplet().getUserId();
        List<Integer> siteIds = new ArrayList<>();
        if (statisticsQueryDto.getSiteId()==null){
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
                siteIds.add(datum.getId());
            }
        }else {
            siteIds.add(statisticsQueryDto.getSiteId());
        }
        statisticsQueryDto.setSiteIds(siteIds);
        TCharingUserMapVO tCharingUserMapVO = new TCharingUserMapVO();
        //上方折现
        if (statisticsQueryDto.getDayType()==1){
        List<Map<String,Object>> map = chargingOrderService.usersDay();
        List<Map<String,Object>> map = chargingOrderService.usersDay(statisticsQueryDto);
            List<Map<String, Object>> charMap = new ArrayList<>();
            // 生成从 "00:00" 到 "23:00" 的时间数据
@@ -1300,13 +1346,16 @@
        return R.ok(tCharingUserMapVO);
    }
    @RequiresPermissions(value = {"/chargingUserAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/charging/sites")
    @ApiOperation(value = "电站评价", tags = {"管理后台-数据分析-充电用户分析"})
    public R<TCharingUserEvaluateVO> sites(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){
        List<Integer> siteIds =new ArrayList<>();
        if (statisticsQueryDto.getSiteId()==null) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1343,14 +1392,16 @@
        //流量
        return R.ok(tCharingUserEvaluateVO);
    }
    @RequiresPermissions(value = {"/operationMaintenanceAnalysis"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/charging/equipment")
    @ApiOperation(value = "电站评价", tags = {"管理后台-数据分析-设备运维分析"})
    public R<TCharingUserEquimentVO> equipment(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){
        List<Integer> siteIds =new ArrayList<>();
        if (statisticsQueryDto.getSiteId()==null||statisticsQueryDto.getSiteId()==0) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1479,14 +1530,16 @@
        // 格式化为两位小数
        return Double.parseDouble(DF.format(average));
    }
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/work/charge")
    @ApiOperation(value = "上方充电数据统计", tags = {"管理后台-工作台"})
    public R<TCharingWorkVO> workCharge(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
        List<Integer> siteIds = new ArrayList<>();
        if (statisticsQueryDto.getSiteId() == null) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1522,16 +1575,17 @@
        tCharingWorkVO.setTotalChargingCapacity(totalChargingCapacity);
        return R.ok(tCharingWorkVO);
    }
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/work/chargeDetail")
    @ApiOperation(value = "运营情况", tags = {"管理后台-工作台"})
    public R workCharge(@RequestBody ChargingDetailQueryDto statisticsQueryDto) {
        List<Integer> siteIds = new ArrayList<>();
        if (statisticsQueryDto.getSiteId() == null) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1646,17 +1700,18 @@
        }
        return null;
    }
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @PostMapping(value = "/work/use")
    @ApiOperation(value = "利用率", tags = {"管理后台-工作台"})
    public R workUse(@RequestBody ChargingDetailQueryDto statisticsQueryDto) {
        List<Integer> siteIds = new ArrayList<>();
        if (statisticsQueryDto.getSiteId() == null) {
            Long userId = SecurityUtils.getUserId();
            Long userId = tokenService.getLoginUser().getUserid();
            //获取当前登录的siteIds
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
            for (GetSiteListDTO datum : data) {
@@ -1708,8 +1763,9 @@
    }
    
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/work/shopOrder")
    @ApiOperation(value = "购物订单统计", tags = {"管理后台-工作台"})
@@ -1721,7 +1777,9 @@
        counts.add(count1);
        return R.ok(counts);
    }
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/work/invoice")
    @ApiOperation(value = "开票统计", tags = {"管理后台-工作台"})
@@ -1733,7 +1791,8 @@
        counts.add(count1);
        return R.ok(counts);
    }
    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
    @ResponseBody
    @GetMapping(value = "/work/users/count")
    @ApiOperation(value = "用户数量", tags = {"管理后台-工作台"})