ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TMonitoringEquipmentVO.java
@@ -12,4 +12,7 @@ @ApiModelProperty(value = "停车场名称") private String parkingLotName; @ApiModelProperty(value = "查看权限") private boolean authQueryInfo = true; } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TParkingLotVO.java
@@ -13,4 +13,18 @@ @ApiModelProperty(value = "归属电站") private String siteName; @ApiModelProperty(value = "编辑权限") private boolean authUpdate = true; @ApiModelProperty(value = "删除权限") private boolean authDelete = true; @ApiModelProperty(value = "查看权限") private boolean authQueryInfo = true; @ApiModelProperty(value = "添加权限") private boolean authAddParkingLot = true; @ApiModelProperty(value = "车场监控权限") private boolean authMonitor = true; } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
@@ -62,9 +62,8 @@ */ @ApiOperation(tags = {"后台-停车场"},value = "查询停车场列表") @PostMapping(value = "/list") public AjaxResult<List<TParkingLot>> list(@RequestBody TParkingLotQuery query) { return AjaxResult.ok(parkingLotService.list(Wrappers.lambdaQuery(TParkingLot.class) .eq(TParkingLot::getName,query.getName()))); public AjaxResult<List<TParkingLotVO>> list(@RequestBody TParkingLotQuery query) { return AjaxResult.ok(parkingLotService.getList(query.getName())); } /** ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TMonitoringEquipmentMapper.java
@@ -27,5 +27,5 @@ * @param pageInfo * @return */ List<TMonitoringEquipmentVO> pageList(@Param("query") TMonitoringEquipmentQuery query, @Param("pageInfo")PageInfo<TMonitoringEquipmentVO> pageInfo); List<TMonitoringEquipmentVO> pageList(@Param("query") TMonitoringEquipmentQuery query, @Param("pageInfo")PageInfo<TMonitoringEquipmentVO> pageInfo,@Param("parkingLotIds")List<Integer> parkingLotIds); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingLotMapper.java
@@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Set; /** * <p> @@ -27,5 +28,14 @@ * @param pageInfo * @return */ List<TParkingLotVO> pageList(@Param("query") TParkingLotQuery query, @Param("pageInfo")PageInfo<TParkingLotVO> pageInfo); List<TParkingLotVO> pageList(@Param("query") TParkingLotQuery query, @Param("pageInfo")PageInfo<TParkingLotVO> pageInfo, @Param("siteIds") Set<Integer> siteIds); /** * 获取停车场列表 * @param name * @param siteIds * @return */ List<TParkingLotVO> getList(@Param("name")String name, @Param("siteIds")Set<Integer> siteIds); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingLotService.java
@@ -6,6 +6,8 @@ import com.ruoyi.chargingPile.api.vo.TParkingLotVO; import com.ruoyi.common.core.web.page.PageInfo; import java.util.List; /** * <p> * 停车场 服务类 @@ -22,4 +24,11 @@ * @return */ PageInfo<TParkingLotVO> pageList(TParkingLotQuery query); /** * 查询停车场列表 * @param name * @return */ List<TParkingLotVO> getList(String name); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TMonitoringEquipmentServiceImpl.java
@@ -5,12 +5,24 @@ import com.ruoyi.chargingPile.api.query.TMonitoringEquipmentQuery; import com.ruoyi.chargingPile.api.vo.TMonitoringEquipmentVO; import com.ruoyi.chargingPile.api.vo.TParkingLotVO; import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.mapper.TMonitoringEquipmentMapper; import com.ruoyi.chargingPile.service.IPartnerService; import com.ruoyi.chargingPile.service.TMonitoringEquipmentService; import com.ruoyi.chargingPile.service.TParkingLotService; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.other.api.feignClient.UserSiteClient; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * <p> @@ -22,11 +34,31 @@ */ @Service public class TMonitoringEquipmentServiceImpl extends ServiceImpl<TMonitoringEquipmentMapper, TMonitoringEquipment> implements TMonitoringEquipmentService { @Resource private SysUserClient sysUserClient; @Resource private IPartnerService partnerService; @Resource private TParkingLotService parkingLotService; @Override public PageInfo<TMonitoringEquipmentVO> pageList(TMonitoringEquipmentQuery query) { //校验合作商权限 SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); // 查询管理站点下的停车场 List<TParkingLotVO> parkingLotVOS = parkingLotService.getList(null); List<Integer> parkingLotIds = parkingLotVOS.stream().map(TParkingLotVO::getId).collect(Collectors.toList()); PageInfo<TMonitoringEquipmentVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); List<TMonitoringEquipmentVO> list = this.baseMapper.pageList(query,pageInfo); List<TMonitoringEquipmentVO> list = this.baseMapper.pageList(query,pageInfo,parkingLotIds); for (TMonitoringEquipmentVO monitoringEquipmentVO : list) { Integer siteId = parkingLotVOS.stream().filter(park->park.getId().equals(monitoringEquipmentVO.getParkingLotId())).findFirst().get().getSiteId(); monitoringEquipmentVO.setAuthQueryInfo(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.PARKING_LOT_MONITOR)); } pageInfo.setRecords(list); return pageInfo; } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingLotServiceImpl.java
@@ -1,15 +1,26 @@ package com.ruoyi.chargingPile.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO; import com.ruoyi.chargingPile.api.model.TParkingLot; import com.ruoyi.chargingPile.api.query.TParkingLotQuery; import com.ruoyi.chargingPile.api.vo.TParkingLotVO; import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.mapper.TParkingLotMapper; import com.ruoyi.chargingPile.service.IPartnerService; import com.ruoyi.chargingPile.service.TParkingLotService; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.other.api.feignClient.UserSiteClient; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.Set; /** * <p> @@ -21,12 +32,70 @@ */ @Service public class TParkingLotServiceImpl extends ServiceImpl<TParkingLotMapper, TParkingLot> implements TParkingLotService { @Resource private SysUserClient sysUserClient; @Resource private IPartnerService partnerService; @Resource private UserSiteClient userSiteClient; @Resource private RoleSiteClient roleSiteClient; @Override public PageInfo<TParkingLotVO> pageList(TParkingLotQuery query) { Set<Integer> siteIds = null; //校验合作商权限 SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); //合作商 if(roleType == 2){ siteIds = partnerService.authSite(objectId, SiteMenu.PARKING_LOT); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData(); data.addAll(data1); siteIds = new HashSet<>(data); } } PageInfo<TParkingLotVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); List<TParkingLotVO> list = this.baseMapper.pageList(query,pageInfo); List<TParkingLotVO> list = this.baseMapper.pageList(query,pageInfo,siteIds); for (TParkingLotVO parkingLotVO : list) { Integer siteId = parkingLotVO.getSiteId(); parkingLotVO.setAuthAddParkingLot(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.PARKING_LOT_ADD_GARAGE)); parkingLotVO.setAuthDelete(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.PARKING_LOT_DELETE)); parkingLotVO.setAuthQueryInfo(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.PARKING_LOT_QUERY_INFO)); parkingLotVO.setAuthUpdate(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.PARKING_LOT_UPDATE)); parkingLotVO.setAuthMonitor(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.PARKING_LOT_MONITOR)); } pageInfo.setRecords(list); return pageInfo; } @Override public List<TParkingLotVO> getList(String name) { Set<Integer> siteIds = null; //校验合作商权限 SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); //合作商 if(roleType == 2){ siteIds = partnerService.authSite(objectId, SiteMenu.PARKING_LOT); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData(); data.addAll(data1); siteIds = new HashSet<>(data); } } return this.baseMapper.getList(name,siteIds); } } ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TMonitoringEquipmentMapper.xml
@@ -27,6 +27,12 @@ <if test="query.parkingLotId != null"> AND tme.parking_lot_id = #{query.parkingLotId} </if> <if test="parkingLotIds != null and parkingLotIds.size()>0"> AND tme.parking_lot_id IN <foreach collection="parkingLotIds" item="parkingLotId" open="(" separator="," close=")"> #{parkingLotId} </foreach> </if> AND tme.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} </where> ORDER BY tme.create_time DESC ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingLotMapper.xml
@@ -39,9 +39,32 @@ <if test="query.siteId != null"> AND tpl.site_id = #{query.siteId} </if> <if test="null != siteIds and siteIds.size() > 0"> and tcg.site_id in <foreach collection="siteIds" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> AND tpl.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} </where> ORDER BY tpl.create_time DESC </select> <select id="getList" resultType="com.ruoyi.chargingPile.api.vo.TParkingLotVO"> select <include refid="Base_Column_List"></include> from t_parking_lot <where> <if test="name != null and name != ''"> AND `name` LIKE concat('%',#{name},'%') </if> <if test="null != siteIds and siteIds.size() > 0"> and site_id in <foreach collection="siteIds" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} </where> ORDER BY create_time DESC </select> </mapper>