lyhzzz 7 ay önce
ebeveyn
işleme
7f8f6dbe99

+ 43 - 2
src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java

@@ -35,6 +35,8 @@ public class InnerAPIController extends BaseController {
     @Autowired
     IUserService userService;
     @Autowired
+    ISysUserService sysUserService;
+    @Autowired
     IJySceneUserAuthService jySceneUserAuthService;
     @Autowired
     IScenePlusService scenePlusService;
@@ -42,6 +44,10 @@ public class InnerAPIController extends BaseController {
     IJyUserShareService jyUserShareService;
     @Autowired
     IJySceneAuthService jySceneAuthService;
+    @Autowired
+    ManageService manageService;
+    @Autowired
+    ICaseService caseService;
 
     @PostMapping("/getByRyId")
     public ResultData getByRyId(@RequestBody UserParam param){
@@ -348,8 +354,7 @@ public class InnerAPIController extends BaseController {
         return ResultData.ok(camera);
     }
 
-    @Autowired
-    ManageService manageService;
+
 
     @PostMapping("/getTokenByRyNo")
     public ResultData getTokenByRyNo(@RequestBody ManageLoginRequest param){
@@ -391,4 +396,40 @@ public class InnerAPIController extends BaseController {
         map.put("num",scenePlus.getNum());
         return ResultData.ok(map);
     }
+
+
+    @PostMapping("/getTokenByKno")
+    public ResultData getTokenByKno(@RequestBody ManageLoginRequest param){
+        if(StringUtils.isBlank(param.getKno())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        LambdaQueryWrapper<ScenePlus> sceneQw = new LambdaQueryWrapper<>();
+        sceneQw.eq(ScenePlus::getKNo,param.getKno());
+        List<ScenePlus> list = scenePlusService.list(sceneQw);
+        if(list == null || list.isEmpty()){
+            throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
+        }
+        ScenePlus scenePlus = list.get(0);
+        JyUser jyUser = jyUserService.getByUserId(scenePlus.getUserId());
+        Integer platformId = jyUser.getPlatformId();
+        List<JyUser> jyUserList = jyUserService.getAdminByPlatformId(platformId);
+        if(jyUserList == null || jyUserList.isEmpty()){
+            throw new BusinessException(ResultCode.NOT_ROLE);
+        }
+        Case caseEntity = caseService.getByKno(param.getKno());
+
+        param.setUserName(jyUserList.get(0).getRyNo());
+        String clientIP = ServletUtil.getClientIP(request);
+        param.setNeedPassword(false);
+        param.setClientIp(clientIP);
+        ManageLoginResponse login = manageService.login(param);
+
+        HashMap<String,Object> map = new HashMap<>();
+        map.put("token",login.getToken());
+        map.put("numList",list.stream().map(ScenePlus::getNum).collect(Collectors.toList()));
+        if(caseEntity !=null){
+            map.put("caseId", caseEntity.getCaseId());
+        }
+        return ResultData.ok(map);
+    }
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/entity/Case.java

@@ -116,6 +116,9 @@ public class Case implements Serializable {
     @TableField("criminal_case")
     private Integer criminalCase;
 
+    @TableField("k_number")
+    private String kNumber;
+
     @TableField(exist = false)
     private Boolean isOpen = false;
 

+ 3 - 0
src/main/java/com/fdkankan/manage/entity/ScenePlus.java

@@ -118,4 +118,7 @@ public class ScenePlus implements Serializable {
 
     @TableField("task_id")
     private String taskId;
+
+    @TableField("k_no")
+    private String kNo;
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/mapper/IJyUserMapper.java

@@ -20,4 +20,6 @@ import java.util.List;
 public interface IJyUserMapper extends BaseMapper<JyUser> {
 
     List<JyUser> getByAddParam(@Param("param") UserParam param);
+
+    List<JyUser> getAdminByPlatformId(@Param("platformId")Integer platformId);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/ICaseService.java

@@ -26,4 +26,6 @@ public interface ICaseService extends IService<Case> {
     List<Case> getCaseByNum(String num);
 
     void checkNumInCase(String num);
+
+    Case getByKno(String kno);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IJyUserService.java

@@ -53,4 +53,6 @@ public interface IJyUserService extends IService<JyUser> {
     List<JyUser> getByAddParam(UserParam param);
 
     Object getCaseNumByRyId(CaseParam param);
+
+    List<JyUser> getAdminByPlatformId(Integer platformId);
 }

+ 12 - 0
src/main/java/com/fdkankan/manage/service/impl/CaseServiceImpl.java

@@ -83,6 +83,18 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
         }
     }
 
+
+    @Override
+    public Case getByKno(String kno) {
+        LambdaQueryWrapper<Case> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Case::getKNumber,kno);
+        List<Case> list = this.list(wrapper);
+        if(list != null && !list.isEmpty()){
+            return list.get(0);
+        }
+        return null;
+    }
+
     @Autowired
     FdKKClient fdKKClient;
 

+ 137 - 130
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -504,173 +504,180 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
 
     @Override
     public Object checkNumAuth(String num,Integer caseId,String token,String clientIP,String userName,String password) {
-        if(StringUtils.isBlank(num) && caseId == null){
-            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
-        }
-        log.info("checkNumAuth-----------num:{},caseId:{},token:{},userName:{},password:{}",num,caseId,token,userName,password);
-        Long sceneUserId = getUserId(num,caseId);
-        JySceneAuth jySceneAuth = getBySceneAuth(num,caseId);
         SceneAuthVo sceneAuthVo = new SceneAuthVo();
+        try {
+            if(StringUtils.isBlank(num) && caseId == null){
+                throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+            }
+            log.info("checkNumAuth-----------num:{},caseId:{},token:{},userName:{},password:{}",num,caseId,token,userName,password);
+            Long sceneUserId = getUserId(num,caseId);
+            JySceneAuth jySceneAuth = getBySceneAuth(num,caseId);
 
-        //公开场景案件,指针对同平台
-        if(jySceneAuth!=null && jySceneAuth.getAuthType() == 1){
-            sceneAuthVo.setViewAuth(true);
-        }
 
+            //公开场景案件,指针对同平台
+            if(jySceneAuth!=null && jySceneAuth.getAuthType() == 1){
+                sceneAuthVo.setViewAuth(true);
+            }
 
 
-        List<Case> caseList = null;
-        HashMap<Integer,JySceneAuth> caseSceneAuthMap = new HashMap<>();
-        if(StringUtils.isNotBlank(num)){
-            caseList = caseService.getCaseByNum(num);
-            for (Case aCase : caseList) {
-                JySceneAuth jySceneAuth1 = jySceneAuthService.getByCaseId(aCase.getCaseId());
-                caseSceneAuthMap.put(aCase.getCaseId(),jySceneAuth1);
-                if(jySceneAuth1!=null && jySceneAuth1.getAuthType() == 1){
-                    sceneAuthVo.setViewAuth(true);
-                    break;
+
+            List<Case> caseList = null;
+            HashMap<Integer,JySceneAuth> caseSceneAuthMap = new HashMap<>();
+            if(StringUtils.isNotBlank(num)){
+                caseList = caseService.getCaseByNum(num);
+                for (Case aCase : caseList) {
+                    JySceneAuth jySceneAuth1 = jySceneAuthService.getByCaseId(aCase.getCaseId());
+                    caseSceneAuthMap.put(aCase.getCaseId(),jySceneAuth1);
+                    if(jySceneAuth1!=null && jySceneAuth1.getAuthType() == 1){
+                        sceneAuthVo.setViewAuth(true);
+                        break;
+                    }
                 }
             }
-        }
 
-        if(StringUtils.isBlank(token) && (StringUtils.isBlank(userName) || StringUtils.isBlank(password))){
-            return sceneAuthVo;
-        }
-        Long sysUserId = null;
-        if(StringUtils.isNotBlank(token)){
-            String redisKey = String.format(RedisKeyUtil.loginToken,token);
-            if( !redisUtil.hasKey(redisKey) ){
+            if(StringUtils.isBlank(token) && (StringUtils.isBlank(userName) || StringUtils.isBlank(password))){
                 return sceneAuthVo;
             }
-            String userStr = redisUtil.get(redisKey);
-            ManageLoginResponse result = JSONObject.parseObject(userStr,ManageLoginResponse.class);
-            Long userId = result.getUserId();
-            if(userId == null){
-                redisUtil.del(redisKey);
-                throw new BusinessException(ResultCode.USER_NOT_LOGIN);
-            }else {
-                String redisKeyTime = String.format(RedisKeyUtil.loginTokenTime,StpUtil.getTokenValue());
-                if(redisUtil.hasKey(redisKeyTime)){
-                    redisUtil.expire(redisKey,Integer.valueOf(redisUtil.get(redisKeyTime)));
-                    redisUtil.expire(redisKeyTime,Integer.valueOf(redisUtil.get(redisKeyTime)));
+            Long sysUserId = null;
+            if(StringUtils.isNotBlank(token)){
+                String redisKey = String.format(RedisKeyUtil.loginToken,token);
+                if( !redisUtil.hasKey(redisKey) ){
+                    return sceneAuthVo;
+                }
+                String userStr = redisUtil.get(redisKey);
+                ManageLoginResponse result = JSONObject.parseObject(userStr,ManageLoginResponse.class);
+                Long userId = result.getUserId();
+                if(userId == null){
+                    redisUtil.del(redisKey);
+                    throw new BusinessException(ResultCode.USER_NOT_LOGIN);
                 }else {
-                    redisUtil.expire(redisKey,2 * 60 * 60);
+                    String redisKeyTime = String.format(RedisKeyUtil.loginTokenTime,StpUtil.getTokenValue());
+                    if(redisUtil.hasKey(redisKeyTime)){
+                        redisUtil.expire(redisKey,Integer.valueOf(redisUtil.get(redisKeyTime)));
+                        redisUtil.expire(redisKeyTime,Integer.valueOf(redisUtil.get(redisKeyTime)));
+                    }else {
+                        redisUtil.expire(redisKey,2 * 60 * 60);
+                    }
                 }
+                sysUserId = result.getId();
+            }
+            if(StringUtils.isNotBlank(userName) && StringUtils.isNotBlank(password)){
+                ManageLoginRequest param = new ManageLoginRequest();
+                param.setClientIp(clientIP);
+                param.setUserName(userName);
+                param.setPassword(password);
+                param.setMingwen(true);
+                ManageLoginResponse login = manageService.login(param);
+                sysUserId = login.getId();
             }
-            sysUserId = result.getId();
-        }
-        if(StringUtils.isNotBlank(userName) && StringUtils.isNotBlank(password)){
-            ManageLoginRequest param = new ManageLoginRequest();
-            param.setClientIp(clientIP);
-            param.setUserName(userName);
-            param.setPassword(password);
-            param.setMingwen(true);
-            ManageLoginResponse login = manageService.login(param);
-            sysUserId = login.getId();
-        }
 
-        if(sysUserId == null){
-            return sceneAuthVo;
-        }
-        if(StringUtils.isNotBlank(num)){
-            List<String> numList = manageConfig.getNumList();
-            if(numList.contains(num)){
-                sceneAuthVo.setViewAuth(true);
-                sceneAuthVo.setEditAuth(true);
+            if(sysUserId == null){
                 return sceneAuthVo;
             }
-        }
-
-        SysUser byId = sysUserService.getById(sysUserId);
-        if(byId.getRoleId() == 1L ){
-            sceneAuthVo.setViewAuth(true);
-            sceneAuthVo.setEditAuth(true);
-            return sceneAuthVo;
-        }
-        if(byId.getRoleId() == 45L || byId.getRoleId() == 48L){
-            Integer loginPlatformId = jyUserPlatformService.getLoginPlatformId();
-            if(loginPlatformId != null){
-                List<JyUser> userIds = jyUserService.getByUserPlatform(loginPlatformId);
-                List<Long> sysUserIds = userIds.stream().map(JyUser::getSysUserId).collect(Collectors.toList());
-
-                List<Long> byUserIdPlatform = userIds.stream().map(JyUser::getUserId).collect(Collectors.toList());
-                if(byUserIdPlatform.contains(sceneUserId)){
+            if(StringUtils.isNotBlank(num)){
+                List<String> numList = manageConfig.getNumList();
+                if(numList.contains(num)){
                     sceneAuthVo.setViewAuth(true);
                     sceneAuthVo.setEditAuth(true);
                     return sceneAuthVo;
                 }
-                if(caseList != null && !caseList.isEmpty()){
-                    for (Case aCase : caseList) {
-                        if(sysUserIds.contains(aCase.getSysUserId())){
-                            sceneAuthVo.setViewAuth(true);
-                            break;
+            }
+
+            SysUser byId = sysUserService.getById(sysUserId);
+            if(byId.getRoleId() == 1L ){
+                sceneAuthVo.setViewAuth(true);
+                sceneAuthVo.setEditAuth(true);
+                return sceneAuthVo;
+            }
+            if(byId.getRoleId() == 45L || byId.getRoleId() == 48L){
+                Integer loginPlatformId = jyUserPlatformService.getLoginPlatformId();
+                if(loginPlatformId != null){
+                    List<JyUser> userIds = jyUserService.getByUserPlatform(loginPlatformId);
+                    List<Long> sysUserIds = userIds.stream().map(JyUser::getSysUserId).collect(Collectors.toList());
+
+                    List<Long> byUserIdPlatform = userIds.stream().map(JyUser::getUserId).collect(Collectors.toList());
+                    if(byUserIdPlatform.contains(sceneUserId)){
+                        sceneAuthVo.setViewAuth(true);
+                        sceneAuthVo.setEditAuth(true);
+                        return sceneAuthVo;
+                    }
+                    if(caseList != null && !caseList.isEmpty()){
+                        for (Case aCase : caseList) {
+                            if(sysUserIds.contains(aCase.getSysUserId())){
+                                sceneAuthVo.setViewAuth(true);
+                                break;
+                            }
                         }
                     }
                 }
             }
-        }
 
-        if(caseList != null && !caseList.isEmpty()){
-            for (Case aCase : caseList) {
-                if(aCase.getSysUserId().equals(sysUserId)){
-                    sceneAuthVo.setViewAuth(true);
-                    break;
+            if(caseList != null && !caseList.isEmpty()){
+                for (Case aCase : caseList) {
+                    if(aCase.getSysUserId().equals(sysUserId)){
+                        sceneAuthVo.setViewAuth(true);
+                        break;
+                    }
                 }
             }
-        }
 
-        JyUser jyUser = jyUserService.getBySysId(byId.getId());
-        //if(jySceneAuth != null  && jySceneAuth.getAuthType() == 0){
-        if(jySceneAuth != null  ){
-            JySceneUserAuth jySceneUserAuth = null;
-            if(StringUtils.isNotBlank(num)){
-                jySceneUserAuth = jySceneUserAuthService.getByNumAndJyUserId(jyUser.getId(), num,jySceneAuth.getAuthType());
-            }
-            if(caseId != null){
-                jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), caseId,jySceneAuth.getAuthType());
-            }
-            setFlag(jySceneUserAuth,sceneAuthVo);
+            JyUser jyUser = jyUserService.getBySysId(byId.getId());
+            //if(jySceneAuth != null  && jySceneAuth.getAuthType() == 0){
+            if(jySceneAuth != null  ){
+                JySceneUserAuth jySceneUserAuth = null;
+                if(StringUtils.isNotBlank(num)){
+                    jySceneUserAuth = jySceneUserAuthService.getByNumAndJyUserId(jyUser.getId(), num,jySceneAuth.getAuthType());
+                }
+                if(caseId != null){
+                    jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), caseId,jySceneAuth.getAuthType());
+                }
+                setFlag(jySceneUserAuth,sceneAuthVo);
 
-        }
-        if(caseList != null && !caseList.isEmpty()){
-            JySceneUserAuth jySceneUserAuth = null;
-            for (Case aCase : caseList) {
-                JySceneAuth jySceneAuth1 = caseSceneAuthMap.get(aCase.getCaseId());
-                if(jySceneAuth1 != null){
-                    jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), aCase.getCaseId(),jySceneAuth1.getAuthType());
-                    setFlag(jySceneUserAuth,sceneAuthVo);
+            }
+            if(caseList != null && !caseList.isEmpty()){
+                JySceneUserAuth jySceneUserAuth = null;
+                for (Case aCase : caseList) {
+                    JySceneAuth jySceneAuth1 = caseSceneAuthMap.get(aCase.getCaseId());
+                    if(jySceneAuth1 != null){
+                        jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), aCase.getCaseId(),jySceneAuth1.getAuthType());
+                        setFlag(jySceneUserAuth,sceneAuthVo);
+                    }
                 }
             }
-        }
-
-        if(jyUser.getUserId().equals(sceneUserId)){
-            sceneAuthVo.setViewAuth(true);
-            sceneAuthVo.setEditAuth(true);
-            sceneAuthVo.setIsAuthor(true);
-        }
-        if(!sceneAuthVo.getViewAuth() && StringUtils.isNotBlank(num)){
-            List<JyUserShare> jyUserShares = jyUserShareService.getByJyUserId(jyUser.getId());
-            List<Integer> mainUserIds = jyUserShares.stream().map(JyUserShare::getMainJyUserId).collect(Collectors.toList());
-            HashMap<Integer,Long> roleMap = new HashMap<>();
-            if(!mainUserIds.isEmpty()){
-                List<JyUser> jyUsers = jyUserService.listByIds(mainUserIds);
-                Set<Long> sysIds = jyUsers.stream().map(JyUser::getSysUserId).collect(Collectors.toSet());
-                HashMap<Long, SysUser> byIds = sysUserService.getByIds(sysIds);
-                jyUsers.forEach( e-> roleMap.put(e.getId(),byIds.get(e.getSysUserId()).getRoleId()));
 
-                for (JyUser user : jyUsers) {
-                    Long roleId = roleMap.get(user.getId());
-                    if(user.getPlatformId() != null && (roleId == 1L || roleId == 45L || roleId == 48L)){
-                        sceneAuthVo.setViewAuth(true);
-                    }else if(user.getUserId().equals(sceneUserId)){
-                        sceneAuthVo.setViewAuth(true);
+            if(jyUser.getUserId().equals(sceneUserId)){
+                sceneAuthVo.setViewAuth(true);
+                sceneAuthVo.setEditAuth(true);
+                sceneAuthVo.setIsAuthor(true);
+            }
+            if(!sceneAuthVo.getViewAuth() && StringUtils.isNotBlank(num)){
+                List<JyUserShare> jyUserShares = jyUserShareService.getByJyUserId(jyUser.getId());
+                List<Integer> mainUserIds = jyUserShares.stream().map(JyUserShare::getMainJyUserId).collect(Collectors.toList());
+                HashMap<Integer,Long> roleMap = new HashMap<>();
+                if(!mainUserIds.isEmpty()){
+                    List<JyUser> jyUsers = jyUserService.listByIds(mainUserIds);
+                    Set<Long> sysIds = jyUsers.stream().map(JyUser::getSysUserId).collect(Collectors.toSet());
+                    HashMap<Long, SysUser> byIds = sysUserService.getByIds(sysIds);
+                    jyUsers.forEach( e-> roleMap.put(e.getId(),byIds.get(e.getSysUserId()).getRoleId()));
+
+                    for (JyUser user : jyUsers) {
+                        Long roleId = roleMap.get(user.getId());
+                        if(user.getPlatformId() != null && (roleId == 1L || roleId == 45L || roleId == 48L)){
+                            sceneAuthVo.setViewAuth(true);
+                        }else if(user.getUserId().equals(sceneUserId)){
+                            sceneAuthVo.setViewAuth(true);
+                        }
                     }
                 }
-            }
 
 
+            }
+            return sceneAuthVo;
+        }catch (Exception e){
+            log.info("checkNumAuth-error:{}",e);
+            return sceneAuthVo;
         }
-        return sceneAuthVo;
+
     }
 
     private void setFlag(JySceneUserAuth jySceneUserAuth,SceneAuthVo sceneAuthVo){

+ 5 - 0
src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java

@@ -284,4 +284,9 @@ public class JyUserServiceImpl extends ServiceImpl<IJyUserMapper, JyUser> implem
 
         return voList;
     }
+
+    @Override
+    public List<JyUser> getAdminByPlatformId(Integer platformId) {
+        return getBaseMapper().getAdminByPlatformId(platformId);
+    }
 }

+ 1 - 0
src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java

@@ -206,6 +206,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
             jyUser = new JyUser();
             param.setIsJm(param.getIsJm() ==null?1:param.getIsJm());
             param.setPassword(StringUtils.isBlank(param.getPassword()) ? manageConfig.getDefaultPassword() :param.getPassword());
+            param.setNickName(StringUtils.isBlank(param.getNickName())?param.getUserName():param.getNickName() );
         }
 
         User user = this.addUser(jyUser.getUserId(),param.getPassword(), param.getRyNo(), param.getNickName());

+ 2 - 0
src/main/java/com/fdkankan/manage/vo/request/ManageLoginRequest.java

@@ -12,5 +12,7 @@ public class ManageLoginRequest {
     private String clientIp;
     private Boolean needPassword = true;
     private Boolean mingwen = false;
+
     private String projectId;
+    private String kno;
 }

+ 4 - 0
src/main/resources/mapper/manage/JyUserMapper.xml

@@ -18,4 +18,8 @@
         </if>
         )
     </select>
+    <select id="getAdminByPlatformId" resultType="com.fdkankan.manage.entity.JyUser">
+        select jy.* from jy_user jy left join sys_user sy on jy.sys_user_id = sy.id where jy.platform_id = #{platformId}
+        and sy.role_id =48
+    </select>
 </mapper>