From 26cd0115150771d66a6cfca9c03820a734b69c9f Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 11 十二月 2024 19:19:38 +0800 Subject: [PATCH] 合作商权限 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 103 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 72 insertions(+), 31 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java index 06a4e3f..2677245 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java @@ -1,12 +1,19 @@ package com.ruoyi.chargingPile.controller; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.feignClient.AppUserVipDetailClient; import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserVipDetail; +import com.ruoyi.account.api.vo.GetAppUserVipDetail; import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.*; import com.ruoyi.chargingPile.api.query.GetSiteList; import com.ruoyi.chargingPile.api.query.SiteDetailQuery; @@ -41,6 +48,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -100,7 +108,8 @@ private TokenService tokenService; @Resource private AppUserClient appUserClient; - + @Resource + private AppUserVipDetailClient vipDetailClient; /** * 根据站点id 查询所有充电桩 @@ -132,22 +141,28 @@ if(DateUtils.string2LocalTime(tAccountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0 && DateUtils.string2LocalTime(tAccountingStrategyDetail.getEndTime() + ("23:59:59".equals(tAccountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){ siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP)); - if(null != byId1.getDiscount()){ + // 获取当前登录用户id + Long userId = tokenService.getLoginUserApplet().getUserId(); + // 根据id查询用户信息 + TAppUser appUser = appUserClient.getUserById(userId).getData(); + if(Objects.nonNull(byId1.getDiscount())){ siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP)); - }else{ - // 获取当前登录用户id - Long userId = tokenService.getLoginUserApplet().getUserId(); - // 根据id查询用户信息 - TAppUser appUser = appUserClient.getUserById(userId).getData(); - if(Objects.nonNull(appUser)){ - TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + }else { + siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP)); + } + if(Objects.nonNull(appUser)){ +// TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(userId); + getAppUserVipDetail.setVipId(appUser.getVipId()); + R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); + TAppUserVipDetail data1 = appUserVipDetail.getData(); + if(Objects.nonNull(data1)){ + String vipJson = data1.getVipJson(); + TVip vip = JSON.parseObject(vipJson, TVip.class); if(Objects.nonNull(vip) && vip.getType() == 2){ siteInfoVO.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(tAccountingStrategyDetail.getServiceCharge()).add(tAccountingStrategyDetail.getElectrovalence())); - }else { - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); } - }else { - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); } } } @@ -177,25 +192,43 @@ if(DateUtils.string2LocalTime(tAccountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0 && DateUtils.string2LocalTime(tAccountingStrategyDetail.getEndTime() + ("23:59:59".equals(tAccountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){ siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP)); - if(null != byId1.getDiscount()){ + // 获取当前登录用户id + Long userId = tokenService.getLoginUserApplet().getUserId(); + // 根据id查询用户信息 + TAppUser appUser = appUserClient.getUserById(userId).getData(); + if(Objects.nonNull(byId1.getDiscount())){ siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP)); - }else{ - // 获取当前登录用户id - Long userId = tokenService.getLoginUserApplet().getUserId(); - // 根据id查询用户信息 - TAppUser appUser = appUserClient.getUserById(userId).getData(); - if(Objects.nonNull(appUser)){ - TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + }else { + siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP)); + } + if(Objects.nonNull(appUser)){ +// TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(userId); + getAppUserVipDetail.setVipId(appUser.getVipId()); + R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); + TAppUserVipDetail data1 = appUserVipDetail.getData(); + if(Objects.nonNull(data1)){ + String vipJson = data1.getVipJson(); + TVip vip = JSON.parseObject(vipJson, TVip.class); if(Objects.nonNull(vip) && vip.getType() == 2){ siteInfoVO.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(tAccountingStrategyDetail.getServiceCharge()).add(tAccountingStrategyDetail.getElectrovalence())); - }else { - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); } - }else { - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); } } } + } + List<TVip> vips = vipClient.getVipList().getData(); + if(!CollectionUtils.isEmpty(vips)){ + TVip tVip = vips.get(0); + JSONArray objects = JSONArray.parseArray(tVip.getCoupon()); + Integer num = 0; + for (Object object : objects) { + JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(object)); + Integer number1 = jsonObject.getInteger("number"); + num += number1; + } + siteInfoVO.setCouponCount(num); } siteInfoVO.setChargingPileId(one.getId()); siteInfoVO.setName(byId.getName()); @@ -293,15 +326,22 @@ return R.ok(divide); } - + @Resource + private SiteClient siteClient; @PostMapping("/map/getPercentByprovinceCode") @ApiOperation(value = "获取该充电站的利用率", tags = {"管理后台-数据分析-电站分析"}) public R getPercentByCityCode(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto){ + Long userid = tokenService.getLoginUser().getUserid(); + List<Integer> siteIds = new ArrayList<>(); - + List<GetSiteListDTO> data1 = siteClient.getSiteListByUserId(userid).getData(); + for (GetSiteListDTO datum : data1) { + siteIds.add(datum.getId()); + } + chargingPercentProvinceDto.setSiteIds(siteIds); GetSiteList siteList = new GetSiteList(); @@ -379,8 +419,9 @@ @ApiOperation(value = "获取站点列表", tags = {"小程序-站点管理-地图导航站点"}) @PostMapping("/getMapSiteList") - public AjaxResult<List<SiteVO>> getMapSiteList(@Validated @RequestBody SiteQuery query){ - return AjaxResult.success(siteService.getMapSiteList(query)); + public AjaxResult<List<SiteVO>> getMapSiteList(@Validated @RequestBody SiteQuery query, HttpServletRequest request){ + int isLogin = StringUtils.isEmpty(SecurityUtils.getToken(request)) ? 0 : 1; + return AjaxResult.success(siteService.getMapSiteList(query,isLogin)); } @ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理-站点详情"}) @PostMapping("/getDetailById") @@ -476,7 +517,7 @@ @ApiOperation(value = "获取所有站点数据", tags = {"管理后台-充电桩信息", "管理后台-系统用户管理", "管理后台-角色管理", "管理后台-系统通知", "管理后台-充电评价"}) public AjaxResult<List<Site>> getAllSiteList(){ //校验当前账户站点权限 - SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); LambdaQueryWrapper<Site> wrapper = new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0); @@ -485,7 +526,7 @@ wrapper.in(Site::getId, list); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + if(!SecurityUtils.isAdmin(tokenService.getLoginUser().getUserid())){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = userRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); -- Gitblit v1.7.1