doum
6 天以前 57b1d0498e3832478986fbd1277bfe278cea816a
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -377,6 +377,38 @@
                .eq(Empower::getIsdeleted,Constants.ZERO)
                .set(Empower::getSendStatus,Constants.ZERO));
    }
    public   void cancelAllMemberEmpowerBathch(List<Integer> members,LoginUserInfo user) {
        //删除全部权限
        Date date = new Date();
        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                .in(Member::getId,members)
                .set(Member::getRoleId,null)
                .set(Member::getAuthStatus,Constants.ZERO)
                .set(Member::getStartTime,null)
                .set(Member::getEndTime,null)
                .set(Member::getEditor,user.getId())
                .set(Member::getEditDate,new Date()) );
        memberRoleMapper.update(null,new UpdateWrapper<MemberRole>().lambda()
                .in(MemberRole::getMemberId,members)
                .set(MemberRole::getIsdeleted,Constants.ONE)
                .set(MemberRole::getEdirot,user.getId())
                .set(MemberRole::getEditDate,date));
        //把所有待下发的任务改成 已取消
        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                .in(Empower::getMemberId,members)
                .eq(Empower::getIsdeleted,Constants.ZERO)
                .eq(Empower::getSendStatus,Constants.EmpowerStatus.wait)
                .set(Empower::getIsdeleted,Constants.ONE)
                .set(Empower::getSendStatus,Constants.EmpowerStatus.cancel));
        //所有下发过的任务,改为待删除权限
        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                .in(Empower::getMemberId,members)
                .set(Empower::getIsdeleted,Constants.ONE)
                .notIn(Empower::getSendStatus,Constants.EmpowerStatus.fail)
                .set(Empower::getRemark,"等待同步删除安防平台")
                .eq(Empower::getIsdeleted,Constants.ZERO)
                .set(Empower::getSendStatus,Constants.ZERO));
    }
    private void isMemberParamValid(Member member) {
        if(member.getCompanyId() == null){
@@ -682,6 +714,7 @@
        }
        if(memberRole.getRoleIds() ==null || memberRole.getRoleIds().length ==0){
            //如果是清空权限
            cancelAllMemberEmpowerBathch(memberRole.getIds(),memberRole.getLoginUserInfo() );
        }else{
            if( ! (Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO)
                    ||Constants.equalsInteger(memberRole.getTimeType(),Constants.TWO)
@@ -695,54 +728,54 @@
            if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ONE) && memberRole.getEndTime().getTime() <= memberRole.getStartTime().getTime()){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"有效期截止日期不能小于开始时间!");
            }
        }
        if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO) ){
            memberRole.setStartTime(null);
            memberRole.setEndTime(null);
        }
        for (Integer id : memberRole.getIds()){
            Member member = memberMapper.selectById(id);
            if(member==null || member.getIsdeleted().equals(Constants.ONE)){
                //如果员工信息不合法直接跳过
                continue;
            if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO) ){
                memberRole.setStartTime(null);
                memberRole.setEndTime(null);
            }
            if(StringUtils.isBlank(member.getFaceId()) || !Constants.equalsInteger(member.getFaceStatus(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,用户【"+member.getName()+"】的人脸信息不满足授权条件,请返回完善后再进行该操作!");
            }
            member.setStartTime(memberRole.getStartTime());
            member.setEndTime(memberRole.getEndTime());
            Integer ischange = getRoleIdByParam(memberRole.getRoleIds(),member,memberRoleMapper,deviceRoleMapper);
            if(memberRole.getRoleIds()!=null && memberRole.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,未查询到有效门禁组数据");
            }
            if(Constants.equalsInteger(memberRole.getTimeType(),Constants.TWO)){
                //如果按照培训日期下发
                TrainTime trainTime = trainTimeMapper.selectOne(new QueryWrapper<TrainTime>().lambda()
                        .eq(TrainTime::getMemberId,id )
                        .eq(TrainTime::getIsdeleted,Constants.ZERO )
                        .orderByDesc(TrainTime::getId)
                        .last("limit 1")
                );
                if(trainTime == null || trainTime.getStartTime()==null || trainTime.getEndTime() ==null || trainTime.getStartTime().getTime()>=trainTime.getEndTime().getTime()){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,用户【"+member.getName()+"】培训有效期信息为空,请返回完善后再进行该操作!");
            for (Integer id : memberRole.getIds()){
                Member member = memberMapper.selectById(id);
                if(member==null || member.getIsdeleted().equals(Constants.ONE)){
                    //如果员工信息不合法直接跳过
                    continue;
                }
                if(trainTime.getEndTime() .getTime()< System.currentTimeMillis()){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,用户【"+member.getName()+"】培训有效期已过期,请重新上传其培训有效期!");
                if(StringUtils.isBlank(member.getFaceId()) || !Constants.equalsInteger(member.getFaceStatus(),Constants.ONE)){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,用户【"+member.getName()+"】的人脸信息不满足授权条件,请返回完善后再进行该操作!");
                }
                memberRole.setStartTime(trainTime.getStartTime());
                memberRole.setEndTime(trainTime.getEndTime());
                member.setStartTime(memberRole.getStartTime());
                member.setEndTime(memberRole.getEndTime());
                Integer ischange = getRoleIdByParam(memberRole.getRoleIds(),member,memberRoleMapper,deviceRoleMapper);
                if(memberRole.getRoleIds()!=null && memberRole.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,未查询到有效门禁组数据");
                }
                if(Constants.equalsInteger(memberRole.getTimeType(),Constants.TWO)){
                    //如果按照培训日期下发
                    TrainTime trainTime = trainTimeMapper.selectOne(new QueryWrapper<TrainTime>().lambda()
                            .eq(TrainTime::getMemberId,id )
                            .eq(TrainTime::getIsdeleted,Constants.ZERO )
                            .orderByDesc(TrainTime::getId)
                            .last("limit 1")
                    );
                    if(trainTime == null || trainTime.getStartTime()==null || trainTime.getEndTime() ==null || trainTime.getStartTime().getTime()>=trainTime.getEndTime().getTime()){
                        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,用户【"+member.getName()+"】培训有效期信息为空,请返回完善后再进行该操作!");
                    }
                    if(trainTime.getEndTime() .getTime()< System.currentTimeMillis()){
                        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,用户【"+member.getName()+"】培训有效期已过期,请重新上传其培训有效期!");
                    }
                    memberRole.setStartTime(trainTime.getStartTime());
                    memberRole.setEndTime(trainTime.getEndTime());
                }
                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                        .eq(Member::getId,member.getId())
                        .set(Member::getRoleId,member.getRoleId())
                        .set(Member::getAuthStatus,Constants.ONE)
                        .set(Member::getStartTime,memberRole.getStartTime())
                        .set(Member::getEndTime,memberRole.getEndTime())
                        .set(Member::getEditor,memberRole.getLoginUserInfo().getId())
                        .set(Member::getEditDate,new Date()) );
                saveUserActionBiz(member,memberRole.getLoginUserInfo(), Constants.UserActionType.AUTH_ROLE,userActionJoinMapper,null);
                //重新授权
                HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
            }
            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                    .eq(Member::getId,member.getId())
                    .set(Member::getRoleId,member.getRoleId())
                    .set(Member::getAuthStatus,Constants.ONE)
                    .set(Member::getStartTime,memberRole.getStartTime())
                    .set(Member::getEndTime,memberRole.getEndTime())
                    .set(Member::getEditor,memberRole.getLoginUserInfo().getId())
                    .set(Member::getEditDate,new Date()) );
            saveUserActionBiz(member,memberRole.getLoginUserInfo(), Constants.UserActionType.AUTH_ROLE,userActionJoinMapper,null);
            //重新授权
            HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
        }
    }
@@ -978,6 +1011,7 @@
                    .set(Member::getRoleId,null)
                    .set(StringUtils.isNotBlank(updateMember.getErpId()),Member::getErpId,updateMember.getErpId())
                    .set(StringUtils.isNotBlank(updateMember.getDdId()),Member::getDdId,updateMember.getDdId())
                    .set(StringUtils.isNotBlank(updateMember.getPhone()),Member::getPhone,updateMember.getPhone())
                    .set(StringUtils.isNotBlank(updateMember.getName()),Member::getName,updateMember.getName())
                    .set(Member::getEditDate,updateMember.getEditDate())
                    .set(Member::getEditor,updateMember.getEditor())
@@ -2071,7 +2105,7 @@
                .eq(Member::getStatus,Constants.ZERO)
                .eq(Member::getWorkStatus,Constants.ZERO)
                .eq(Member::getCanVisit,Constants.ONE)
                .eq(Company::getType,Constants.ONE)
//                .eq(Company::getType,Constants.ONE)
                .orderByAsc(Member::getPinyin)
        );
        List<MemberVO> memberVOList = new ArrayList<>();