Commit fd065dad authored by chenzhao's avatar chenzhao

权限修改

parent 8817dce4
...@@ -30,6 +30,7 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil; ...@@ -30,6 +30,7 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.sql.Connection; import java.sql.Connection;
...@@ -39,14 +40,19 @@ import static com.alibaba.fastjson.JSON.parseArray; ...@@ -39,14 +40,19 @@ import static com.alibaba.fastjson.JSON.parseArray;
@Intercepts({@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, @Intercepts({@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class,
RowBounds.class, ResultHandler.class}), @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})}) RowBounds.class, ResultHandler.class}), @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})})
public class DealerRestrictInterceptor implements Interceptor { public class DealerRestrictInterceptor implements Interceptor {
private static final String ROLEFLAG="-经销商-";
@Value("classpath:/json/DealerRestrict.json") @Value("classpath:/json/DealerRestrict.json")
private Resource paramsTree; private Resource paramsTree;
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Override @Override
public Object intercept(Invocation invocation) throws Throwable { public Object intercept(Invocation invocation) throws Throwable {
try { ReginParams reginParam = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId()
, RequestContext.getToken())).toString(), ReginParams.class);
String org= reginParam.getUserModel().getOrgNames();
//判断是否经销商,经销商跟管理端互斥
if(org.contains(ROLEFLAG)){
try {
StatementHandler statementHandler = PluginUtils.realTarget(invocation.getTarget()); StatementHandler statementHandler = PluginUtils.realTarget(invocation.getTarget());
MetaObject metaObject = SystemMetaObject.forObject(statementHandler); MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement"); MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
...@@ -64,13 +70,12 @@ public class DealerRestrictInterceptor implements Interceptor { ...@@ -64,13 +70,12 @@ public class DealerRestrictInterceptor implements Interceptor {
String fileBetweenCondition = dealerRestrict.relationship(); String fileBetweenCondition = dealerRestrict.relationship();
//获取参数值, //获取参数值,
StdUserEmpower dataAuthRule =(StdUserEmpower) redisUtils.get("Emp_"+RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())); StdUserEmpower dataAuthRule =(StdUserEmpower) redisUtils.get("Emp_"+RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken()));
String[] data = new String[]{dataAuthRule.getDeveloperId().toString(),dataAuthRule.getRegionalCompaniesCode(),dataAuthRule.getUserId()}; String[] data = new String[]{String.join(",",dataAuthRule.getAmosOrgCode()),dataAuthRule.getRegionalCompaniesCode(),dataAuthRule.getUserId()};
BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql"); BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql");
//获取sql //获取sql
String sql = boundSql.getSql(); String sql = boundSql.getSql();
String json = null; String json = null;
try { try {
json = IOUtils.toString(paramsTree.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8)); json = IOUtils.toString(paramsTree.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
...@@ -78,8 +83,7 @@ public class DealerRestrictInterceptor implements Interceptor { ...@@ -78,8 +83,7 @@ public class DealerRestrictInterceptor implements Interceptor {
e.printStackTrace(); e.printStackTrace();
} }
List<Map> list = parseArray(json, Map.class); List<Map> list = parseArray(json, Map.class);
ReginParams reginParam = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId()
, RequestContext.getToken())).toString(), ReginParams.class);
List<String> fileds = new ArrayList<>(); List<String> fileds = new ArrayList<>();
List<String> datas = new ArrayList<>(); List<String> datas = new ArrayList<>();
for (Map map : list) { for (Map map : list) {
...@@ -88,10 +92,10 @@ public class DealerRestrictInterceptor implements Interceptor { ...@@ -88,10 +92,10 @@ public class DealerRestrictInterceptor implements Interceptor {
List<RoleModel> roleModels = reginParam.getUserModel().getOrgRoles().get(aLong); List<RoleModel> roleModels = reginParam.getUserModel().getOrgRoles().get(aLong);
for (RoleModel roleModel : roleModels) { for (RoleModel roleModel : roleModels) {
if (roleIds.contains(String.valueOf(roleModel.getSequenceNbr()))) { if (roleIds.contains(String.valueOf(roleModel.getSequenceNbr()))) {
if (map.get("key").equals("guanli")) { if (map.get("key").equals("manage")) {
fileds.add(filed[0]); fileds.add(filed[0]);
datas.add(data[0]); datas.add(data[0]);
} else if (map.get("key").equals("kaifa")) { } else if (map.get("key").equals("develop")) {
fileds.add(filed[0]); fileds.add(filed[0]);
fileds.add(filed[2]); fileds.add(filed[2]);
datas.add(data[0]); datas.add(data[0]);
...@@ -160,6 +164,7 @@ public class DealerRestrictInterceptor implements Interceptor { ...@@ -160,6 +164,7 @@ public class DealerRestrictInterceptor implements Interceptor {
} finally { } finally {
} }
}
return invocation.proceed(); return invocation.proceed();
} }
......
...@@ -21,10 +21,7 @@ import org.springframework.core.annotation.Order; ...@@ -21,10 +21,7 @@ import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -68,6 +65,7 @@ public class UserLimitsAdvice { ...@@ -68,6 +65,7 @@ public class UserLimitsAdvice {
stdUserEmpower.setDeveloperId(userUnitInformationDto!=null?userUnitInformationDto.getAmosUnitInfoId():null); stdUserEmpower.setDeveloperId(userUnitInformationDto!=null?userUnitInformationDto.getAmosUnitInfoId():null);
stdUserEmpower.setRegionalCompaniesCode(userUnitInformationDto!=null?userUnitInformationDto.getRegionalCompaniesCode():null); stdUserEmpower.setRegionalCompaniesCode(userUnitInformationDto!=null?userUnitInformationDto.getRegionalCompaniesCode():null);
stdUserEmpower.setUserId(userid); stdUserEmpower.setUserId(userid);
stdUserEmpower.setAmosOrgCode(Arrays.asList(userUnitInformationDto.getAmosUnitOrgCode()));
}else{ }else{
LambdaQueryWrapper<StdUserEmpower> qu=new LambdaQueryWrapper(); LambdaQueryWrapper<StdUserEmpower> qu=new LambdaQueryWrapper();
qu.eq(StdUserEmpower::getAmosUserId,userid); qu.eq(StdUserEmpower::getAmosUserId,userid);
......
package com.yeejoin.amos.boot.module.hygf.api.mapper; package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.hygf.api.config.DealerRestrict;
import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpower; import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpower;
import com.yeejoin.amos.boot.module.hygf.api.dto.JpInverterDto; import com.yeejoin.amos.boot.module.hygf.api.dto.JpInverterDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.JpInverterDtoNew; import com.yeejoin.amos.boot.module.hygf.api.dto.JpInverterDtoNew;
...@@ -22,6 +23,7 @@ public interface JpInverterMapper extends BaseMapper<JpInverter> { ...@@ -22,6 +23,7 @@ public interface JpInverterMapper extends BaseMapper<JpInverter> {
List<Map<String,Object>> queryInverterCountStatus(@Param("dto") JpStationDto reviewDto); List<Map<String,Object>> queryInverterCountStatus(@Param("dto") JpStationDto reviewDto);
//@UserEmpower(field ={"regional_companies_code","amos_company_code"} ,fieldConditions ={"in","in"} ,relationship="and") //@UserEmpower(field ={"regional_companies_code","amos_company_code"} ,fieldConditions ={"in","in"} ,relationship="and")
@DealerRestrict(field ={"amos_company_code","regional_companies_code"} ,fieldConditions ={"in"} ,relationship="and")
List<JpInverterDtoNew> selectPageData(@Param("dto") JpInverterDto reviewDto, int current, int size); List<JpInverterDtoNew> selectPageData(@Param("dto") JpInverterDto reviewDto, int current, int size);
//@UserEmpower(field ={"regional_companies_code","amos_company_code"} ,fieldConditions ={"in","in"} ,relationship="and") //@UserEmpower(field ={"regional_companies_code","amos_company_code"} ,fieldConditions ={"in","in"} ,relationship="and")
......
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.hygf.api.mapper; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.config.DealerRestrict;
import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpower; import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpower;
import com.yeejoin.amos.boot.module.hygf.api.config.UserLimits; import com.yeejoin.amos.boot.module.hygf.api.config.UserLimits;
import com.yeejoin.amos.boot.module.hygf.api.dto.DropDown; import com.yeejoin.amos.boot.module.hygf.api.dto.DropDown;
...@@ -54,9 +55,9 @@ public interface JpStationMapper extends BaseMapper<JpStation> { ...@@ -54,9 +55,9 @@ public interface JpStationMapper extends BaseMapper<JpStation> {
Map<String,Object> getcount( @Param("dto") JpStationDto reviewDto); Map<String,Object> getcount( @Param("dto") JpStationDto reviewDto);
// @UserEmpower(field ={"regional_companies_code","amos_company_code"} ,fieldConditions ={"in","in"} ,relationship="and") // @UserEmpower(field ={"regional_companies_code","amos_company_code"} ,fieldConditions ={"in","in"} ,relationship="and")
@UserLimits @UserLimits
List<JpStationDto> queryForDealerReviewPagenew(@Param("dto") JpStationDto reviewDto, Page<JpStationDto> pa); @DealerRestrict(field ={"amos_company_code","regional_companies_code","developer_user_id"} ,fieldConditions ={"in","in"} ,relationship="and")
List<JpStationDto> queryForDealerReviewPagenew(@Param("dto") JpStationDto reviewDto, Page<JpStationDto> pa);
List<DropDown> getDealerNew(@Param("regionalCompaniesSeq") String regionalCompaniesSeq); List<DropDown> getDealerNew(@Param("regionalCompaniesSeq") String regionalCompaniesSeq);
} }
[ [
{ {
"key": "guanli", "key": "manage",
"roleIds": "" "roleIds": ""
}, },
{ {
"key": "kaifa", "key": "develop",
"roleIds": ""}, "roleIds": "1742437975800705025"
},
{ {
"key": "qita", "key": "other",
"roleIds": "" "roleIds": ""
} }
] ]
\ No newline at end of file
...@@ -565,6 +565,8 @@ ...@@ -565,6 +565,8 @@
ROUND(`day_generate`/capacity,3) fullhour, ROUND(`day_generate`/capacity,3) fullhour,
(select privilege_company.COMPANY_NAME from privilege_company where privilege_company.ORG_CODE=hygf_jp_station.regional_companies_code) regionalCompaniesName (select privilege_company.COMPANY_NAME from privilege_company where privilege_company.ORG_CODE=hygf_jp_station.regional_companies_code) regionalCompaniesName
from hygf_jp_station from hygf_jp_station
LEFT JOIN
(select developer_user_id,developer_code FROM hygf_peasant_household ) php ON php.developer_code= hygf_jp_station.amos_company_code
<where> <where>
<if test="dto.name!=null"> <if test="dto.name!=null">
and hygf_jp_station.name like concat(concat("%",#{dto.name}),"%") and hygf_jp_station.name like concat(concat("%",#{dto.name}),"%")
......
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.github.pagehelper.PageInterceptor; import com.github.pagehelper.PageInterceptor;
import com.yeejoin.amos.boot.biz.config.MetaHandler; import com.yeejoin.amos.boot.biz.config.MetaHandler;
import com.yeejoin.amos.boot.module.hygf.api.config.DealerRestrictInterceptor;
import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpowerInterceptor; import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpowerInterceptor;
import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
...@@ -71,7 +72,8 @@ public class MysqlServerConfig { ...@@ -71,7 +72,8 @@ public class MysqlServerConfig {
bean.setPlugins(new Interceptor[] {interceptor, bean.setPlugins(new Interceptor[] {interceptor,
paginationInterceptor(), paginationInterceptor(),
userEmpowerInterceptor() userEmpowerInterceptor(),
dealerRestrictInterceptor()
}); });
return bean.getObject(); return bean.getObject();
} }
...@@ -102,4 +104,11 @@ public class MysqlServerConfig { ...@@ -102,4 +104,11 @@ public class MysqlServerConfig {
return userEmpowerInterceptor; return userEmpowerInterceptor;
} }
@Bean
public DealerRestrictInterceptor dealerRestrictInterceptor() {
DealerRestrictInterceptor dealerRestrictInterceptor = new DealerRestrictInterceptor();
return dealerRestrictInterceptor;
}
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.hygf.biz.controller; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.hygf.api.config.DealerRestrict;
import com.yeejoin.amos.boot.module.hygf.api.config.UserLimits; import com.yeejoin.amos.boot.module.hygf.api.config.UserLimits;
import com.yeejoin.amos.boot.module.hygf.api.dto.DropDown; import com.yeejoin.amos.boot.module.hygf.api.dto.DropDown;
import com.yeejoin.amos.boot.module.hygf.api.dto.JpStationDto; import com.yeejoin.amos.boot.module.hygf.api.dto.JpStationDto;
...@@ -699,6 +700,7 @@ public class JpStationController extends BaseController { ...@@ -699,6 +700,7 @@ public class JpStationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/queryPagenew") @GetMapping(value = "/queryPagenew")
@ApiOperation(httpMethod = "GET", value = "场站列表", notes = "场站列表") @ApiOperation(httpMethod = "GET", value = "场站列表", notes = "场站列表")
@UserLimits
public ResponseModel<Page<JpStationDto>> queryPagenew(@RequestParam(value = "current") int current, @RequestParam public ResponseModel<Page<JpStationDto>> queryPagenew(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size, JpStationDto reviewDto) { (value = "size") int size, JpStationDto reviewDto) {
Page<JpStationDto> page = jpStationServiceImpl.queryForJpStationPagenew(current, size, reviewDto); Page<JpStationDto> page = jpStationServiceImpl.queryForJpStationPagenew(current, size, reviewDto);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment