|  |  | 
 |  |  | import com.doumee.core.annotation.excel.ExcelImporter; | 
 |  |  | import com.doumee.core.constants.ResponseStatus; | 
 |  |  | import com.doumee.core.exception.BusinessException; | 
 |  |  | import com.doumee.core.haikang.model.HKConstants; | 
 |  |  | import com.doumee.core.haikang.model.param.BaseResponse; | 
 |  |  | import com.doumee.core.haikang.model.param.request.UserDelRequest; | 
 |  |  | import com.doumee.core.haikang.model.param.respose.UserDelResponse; | 
 |  |  | import com.doumee.core.haikang.service.HKService; | 
 |  |  | import com.doumee.core.model.LoginUserInfo; | 
 |  |  | import com.doumee.core.model.PageData; | 
 |  |  | import com.doumee.core.model.PageWrap; | 
 |  |  | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
 |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
 |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
 |  |  | import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; | 
 |  |  | import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; | 
 |  |  | import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
 |  |  | import org.apache.commons.collections.CollectionUtils; | 
 |  |  | import org.apache.commons.lang3.StringUtils; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private UserActionJoinMapper userActionJoinMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private MemberCardMapper memberCardMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private CompanyMapper companyMapper; | 
 |  |  |  | 
 |  |  | 
 |  |  |         memberMapper.updateById(member); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void roleAuthById(Integer id) { | 
 |  |  |         Member member = memberMapper.selectById(id); | 
 |  |  |         if(member==null || member.getIsdeleted().equals(Constants.ONE)){ | 
 |  |  |             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"员工信息已删除"); | 
 |  |  |         } | 
 |  |  | //        List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper); | 
 |  |  |         HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper); | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public     void empowerByList(Member member) { | 
 |  |  |         if(member.getIdList()!=null && member.getIdList().size() >0){ | 
 |  |  |              List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda() | 
 |  |  |                      .in(Member::getId,member.getIdList()) | 
 |  |  |                      .eq(Member::getIsdeleted,Constants.ZERO)); | 
 |  |  |              if(members!=null){ | 
 |  |  |                  for(Member m : members){ | 
 |  |  |                      HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,m,deviceRoleMapper,empowerMapper,deviceMapper); | 
 |  |  |                  } | 
 |  |  |              } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void delete(Member member) { | 
 |  |  |         UpdateWrapper<Member> deleteWrapper = new UpdateWrapper<>(member); | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     public void updateById(Member member) { | 
 |  |  |         memberMapper.updateById(member); | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public void updateFace(Member member) { | 
 |  |  |         QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
 |  |  |         wrapper.lambda().ne(Member::getRemark,"人脸已同步最新"); | 
 |  |  |         List<Member> list =memberMapper.selectList(wrapper); | 
 |  |  |        if(list!=null){ | 
 |  |  |            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() | 
 |  |  |                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); | 
 |  |  |            for(Member m : list){ | 
 |  |  |              String faceId=  HkSyncOrgUserToHKServiceImpl.dealMemberFace(m,path); | 
 |  |  |              if(StringUtils.isNotBlank(faceId)){ | 
 |  |  |                  Member update = new Member(); | 
 |  |  |                  update.setId(m.getId()); | 
 |  |  |                  update.setFaceId(faceId); | 
 |  |  |                  update.setRemark("人脸已同步最新"); | 
 |  |  |                  update.setFaceStatus(Constants.ONE); | 
 |  |  |                  memberMapper.updateById(update); | 
 |  |  |              } | 
 |  |  |            } | 
 |  |  |        } | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public void delHkForce(Member member) { | 
 |  |  |       Member model  =memberMapper.selectById(member.getId()); | 
 |  |  |        if(model ==null) { | 
 |  |  |             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,人员信息不存在!"); | 
 |  |  |        } | 
 |  |  |         if(!Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,只有针对离职人员可进行该操作!"); | 
 |  |  |        } | 
 |  |  |         if(Constants.equalsObject(model.getHkStatus(),Constants.ONE)){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该人员已被删除!"); | 
 |  |  |        } | 
 |  |  |         if(StringUtils.isBlank(model.getHkId())){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该人员非安防平台创建人员,不能进行该操作!"); | 
 |  |  |        } | 
 |  |  |         HkSyncEmpowerServiceImpl.doHkDeleteUser(model.getId(),model.getHkId(),new Date(),memberMapper,memberCardMapper); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<Member> findList(Member member) { | 
 |  |  |         QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
 |  |  |         MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); | 
 |  |  |         queryWrapper.selectAll(Member.class) | 
 |  |  |                 .selectAs(Company::getName,MemberInfoDTO::getCompanyName) | 
 |  |  |                 .selectAs(Company::getLinkName,MemberInfoDTO::getLinkName); | 
 |  |  |  | 
 |  |  |         if(null != member.getType()) { | 
 |  |  |             wrapper.lambda().eq(Member::getType,member.getType()); | 
 |  |  |             queryWrapper.eq(Member::getType,member.getType()); | 
 |  |  |         } | 
 |  |  |         wrapper.lambda().eq(Member::getIsdeleted,Constants.ZERO); | 
 |  |  |         return memberMapper.selectList(wrapper); | 
 |  |  |         if(null != member.getCompanyId()) { | 
 |  |  |             queryWrapper.eq(Member::getCompanyId,member.getCompanyId()); | 
 |  |  |         } | 
 |  |  |         queryWrapper.eq(Member::getIsdeleted,Constants.ZERO); | 
 |  |  |  | 
 |  |  |         List<Member> list =  memberJoinMapper.selectJoinList(Member.class,queryWrapper); | 
 |  |  |         if(list!=null){ | 
 |  |  |             for(Member m : list){ | 
 |  |  |                 m.setName(StringUtils.defaultString(m.getName(),"")+"-"+StringUtils.defaultString(m.getCompanyName(),"")); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return  list; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |  | 
 |  |  |         queryWrapper.selectAll(Member.class); | 
 |  |  |         queryWrapper.selectAs(Company::getName,Member::getCompanyName); | 
 |  |  |         queryWrapper.select(" ( select count(1) from member_card mc where mc.isdeleted = 0 and  mc.member_id = t.id ) as  memberCardCount "); | 
 |  |  |         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); | 
 |  |  |         queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0, | 
 |  |  |                         Member::getCompanyId,pageWrap.getModel().getCompanyIds()) | 
 |  |  | 
 |  |  |                         .like(Member::getPhone,pageWrap.getModel().getKeyword()) | 
 |  |  |                         .or().like(Member::getName,pageWrap.getModel().getKeyword()) | 
 |  |  |                         .or().like(Member::getCode,pageWrap.getModel().getKeyword())) | 
 |  |  |                 .isNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) | 
 |  |  |                 .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) | 
 |  |  |                 .isNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) | 
 |  |  |                 .isNotNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) | 
 |  |  |                 .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit()) | 
 |  |  |                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) | 
 |  |  |                 .eq(Objects.nonNull(pageWrap.getModel().getHkStatus()),Member::getHkStatus,pageWrap.getModel().getHkStatus()) | 
 |  |  |                 .eq(Member::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(Objects.isNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(Objects.nonNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,pageWrap.getModel().getIsdeleted()) | 
 |  |  |                 .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) | 
 |  |  | //                .eq(Member::getStatus,Constants.Status.ENABLE.getValue()) | 
 |  |  |                 .eq(Member::getType,Constants.memberType.internal) | 
 |  |  |                 .orderByDesc(Member::getCreateDate); | 
 |  |  |                 .eq(pageWrap.getModel().getHkStatus()!=null,Member::getHkStatus,pageWrap.getModel().getHkStatus()) | 
 |  |  |                 .orderByDesc(!Constants.equalsObject(pageWrap.getModel().getIsdeleted(),Constants.ONE),Member::getCreateDate) | 
 |  |  |                 .orderByDesc(Constants.equalsInteger(pageWrap.getModel().getIsdeleted(),Constants.ONE),Member::getEditDate); | 
 |  |  |         if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin())==DataSyncConfig.origin.erp){ | 
 |  |  |             queryWrapper.eq( StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()); | 
 |  |  |         }else{ | 
 |  |  | 
 |  |  |                 .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone()) | 
 |  |  |                 .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName()) | 
 |  |  |                         .or().like(Company::getName,pageWrap.getModel().getCompanyName())) | 
 |  |  |                 .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) | 
 |  |  |                 .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo, | 
 |  |  |                         DESUtil.encrypt(Constants.EDS_PWD, pageWrap.getModel().getIdcardNo()) | 
 |  |  |                 ) | 
 |  |  |                 .eq(Objects.nonNull(pageWrap.getModel().getHkStatus()),Member::getHkStatus,pageWrap.getModel().getHkStatus()) | 
 |  |  |                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) | 
 |  |  |                 .eq(Member::getType,Constants.memberType.visitor) | 
 |  |  | 
 |  |  |                 .selectAs(Company::getName,MemberInfoDTO::getCompanyName) | 
 |  |  |                 .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0  order by ua.CREATE_DATE desc  limit 1) as optTime") | 
 |  |  |                 .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID    where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc  limit 1) as creatorName") | 
 |  |  |                 .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc  limit 1) as visitsLastDate"); | 
 |  |  |  | 
 |  |  |                 .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc  limit 1) as visitsLastDate") | 
 |  |  |                 .eq(Member::getIsdeleted,Constants.ZERO); | 
 |  |  |                 queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId()); | 
 |  |  |                 queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType()); | 
 |  |  |                 queryWrapper | 
 |  |  | 
 |  |  |                         model.setDeviceId(deviceRole.getId()); | 
 |  |  |                         model.setSendStatus(Constants.ZERO); | 
 |  |  |                         model.setSendType(Constants.ZERO); | 
 |  |  |                         model.setFailFlag(Constants.ZERO); | 
 |  |  |                         list.add(model); | 
 |  |  |                     } | 
 |  |  |                     //导入新增的授权信息 | 
 |  |  | 
 |  |  |         WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); | 
 |  |  |         wxAuthorizeVO.setOpenid(openId); | 
 |  |  |         //根据openId 查询用户信息 | 
 |  |  |         Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() | 
 |  |  |         Member member = memberJoinMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() | 
 |  |  |                 .selectAll(Member.class) | 
 |  |  |                 .selectAs(Company::getName,Member::getCompanyName) | 
 |  |  |                 .leftJoin(Company.class,Company::getId,Member::getCompanyId) | 
 |  |  |                 .eq(Member::getOpenid,openId) | 
 |  |  |                 .eq(Member::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .ne(Member::getType,Constants.memberType.visitor) | 
 |  |  |                 .orderByDesc(Member::getCreateDate) | 
 |  |  |                 .last(" limit 1 ") | 
 |  |  |         ); | 
 |  |  |         //非访客用户 进行判断是否存在用户 | 
 |  |  |         if(!Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){ | 
 |  |  |         if(!Objects.isNull(member)){ | 
 |  |  |             if(member.getIsdeleted() == Constants.ONE){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已删除,请联系管理员"); | 
 |  |  |             } | 
 |  |  |             if(member.getStatus() != Constants.ZERO){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已禁用,请联系管理员"); | 
 |  |  |             } | 
 |  |  |             if(StringUtils.isNotBlank(member.getIdcardNo())){ | 
 |  |  |                member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo())); | 
 |  |  |             } | 
 |  |  |             String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + | 
 |  |  |                     systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); | 
 |  |  |             member.setPrefixUrl(prefixUrl); | 
 |  |  |             JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId())); | 
 |  |  |             String token = JwtTokenUtil.generateToken(payLoad); | 
 |  |  |             //存储token至redis | 
 |  |  |             RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME); | 
 |  |  |             wxAuthorizeVO.setToken(token); | 
 |  |  |             wxAuthorizeVO.setMember(member); | 
 |  |  |         } | 
 |  |  |         return wxAuthorizeVO; | 
 |  |  |     } | 
 |  |  | 
 |  |  |             } | 
 |  |  |             BeanUtils.copyProperties(member,memberVO); | 
 |  |  |         }else{ | 
 |  |  |             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
 |  |  |             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"请核实被访人信息!"); | 
 |  |  |         } | 
 |  |  |         return memberVO; | 
 |  |  |     } |