| | |
| | | import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; |
| | | import com.doumee.service.system.SystemLoginService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class MemberServiceImpl implements MemberService { |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Value("${debug_model}") |
| | | private Boolean isDebug; |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Member create(Member member) { |
| | |
| | | Member insert = initAddMemberModel(member,loginUserInfo); |
| | | //海康人员新增业务 |
| | | try { |
| | | if(dealHkUserBiz(insert)){ |
| | | // if(dealHkUserBiz(insert)){ |
| | | memberMapper.insert(insert); |
| | | //创建系统登陆账号(默认无任何角色) |
| | | // if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ |
| | |
| | | //处理培训有效期业务 |
| | | dealTrainTIme(member,0,loginUserInfo); |
| | | // } |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息同步安防平台失败,请稍后重试!"); |
| | | } |
| | | // }else{ |
| | | // throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息同步安防平台失败,请稍后重试!"); |
| | | // } |
| | | }catch (Exception e){ |
| | | //如果发生异常,删除已经创建的人员信息 |
| | | e.printStackTrace(); |
| | | deleteHkUserBiz(new String[]{insert.getHkId()}); |
| | | // deleteHkUserBiz(new String[]{insert.getHkId()}); |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息新建失败,请稍后重试!"); |
| | | } |
| | | return insert; |
| | |
| | | member.setIsdeleted(Constants.ONE); |
| | | member.setEditor(loginUserInfo.getId()); |
| | | member.setEditDate(new Date()); |
| | | member.setHkStatus(Constants.ZERO); |
| | | member.setRemark("人员已删除,等待删除门禁权限"); |
| | | // member.setHkStatus(Constants.ZERO); |
| | | // member.setRemark("人员已删除,等待删除门禁权限"); |
| | | memberMapper.updateById(member); |
| | | |
| | | //刪除系统登陆账户 |
| | |
| | | updateMember.setEditor(loginUserInfo.getId()); |
| | | updateMember.setEditDate(new Date()); |
| | | //海康人员新增业务 |
| | | if(dealHkUserForUpdateBiz(updateMember)){ |
| | | // if(dealHkUserForUpdateBiz(updateMember)){ |
| | | updateMember.setHkId(null); |
| | | updateMember.setAuthStatus(Constants.ZERO); |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | |
| | | cancelAllMemberEmpower(updateMember,memberRoleMapper,empowerMapper); |
| | | //记录操作日志 |
| | | saveUserActionBiz(updateMember,loginUserInfo,Constants.UserActionType.EDIT,userActionJoinMapper,null); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息同步安防平台失败,请稍后重试!"); |
| | | } |
| | | // }else{ |
| | | // throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息同步安防平台失败,请稍后重试!"); |
| | | // } |
| | | } |
| | | |
| | | private void dealTrainTIme(Member updateMember, int i,LoginUserInfo loginUserInfo) { |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,人员信息不存在!"); |
| | | } |
| | | if(model.getCompanyId()!=null) { |
| | | member.setEditor(member.getLoginUserInfo().getId()); |
| | | member.setEditDate(new Date()); |
| | | if(Constants.equalsInteger(member.getHeadStatus(),Constants.ONE)){ |
| | | //如果是取消主管 |
| | | companyMapper.update(null,new UpdateWrapper<Company>().lambda() |
| | |
| | | loginUserInfo = member.getLoginUserInfo(); |
| | | } |
| | | Member update = new Member(); |
| | | update.setId(model.getId()); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setStatus(member.getStatus()); |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 微信授权接口 |
| | | * @param code |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WxAuthorizeVO ywWxAuthorize(String code){ |
| | | if(StringUtils.isBlank(code)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); |
| | | String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); |
| | | String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code) |
| | | .replace("APPID", appId).replace("SECRET", appSecret); |
| | | log.error("=========================getTokenUrl=====================" + getTokenUrl); |
| | | JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true)); |
| | | log.error("=========================tokenJson=====================" + tokenJson); |
| | | String openId = ""; |
| | | WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); |
| | | if(Objects.nonNull(tokenJson)&&!Objects.isNull(tokenJson.get("access_token"))){ |
| | | openId = tokenJson.getString("openid"); |
| | | }else{ |
| | | if(StringUtils.isBlank(openId)){ |
| | | return wxAuthorizeVO; |
| | | } |
| | | } |
| | | wxAuthorizeVO.setOpenid(openId); |
| | | //根据openId 查询用户信息 |
| | | SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() |
| | | .eq(SystemUser::getOpenid,openId) |
| | | .eq(SystemUser::getDeleted,Boolean.FALSE) |
| | | .last(" limit 1 ")); |
| | | if(!Objects.isNull(user)){ |
| | | String token = systemLoginService.loginByUserId(user.getId()); |
| | | wxAuthorizeVO.setToken(token); |
| | | } |
| | | return wxAuthorizeVO; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO){ |
| | | List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>() |
| | |
| | | |
| | | } |
| | | |
| | | /********************************************************阜宁运维*********************************************************************************************/ |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Member ywCreate(Member member) { |
| | | if(Objects.isNull(member) |
| | | || Objects.isNull(member.getCustomerId()) |
| | | || StringUtils.isBlank(member.getName()) |
| | | || StringUtils.isBlank(member.getPhone()) |
| | | || Objects.isNull(member.getHighCheckor()) |
| | | || Objects.isNull(member.getIdcardType()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | LoginUserInfo loginUserInfo = member.getLoginUserInfo(); |
| | | member.setCreator(loginUserInfo.getId()); |
| | | member.setCreateDate(new Date()); |
| | | member.setType(Constants.memberType.customer); |
| | | member.setStatus(Constants.ZERO); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setStatus(Constants.ZERO); |
| | | this.checkYwMember(member); |
| | | memberMapper.insert(member); |
| | | return member; |
| | | } |
| | | |
| | | @Override |
| | | public Member ywUpdate(Member member) { |
| | | if(Objects.isNull(member) |
| | | || Objects.isNull(member.getCustomerId()) |
| | | || Objects.isNull(member.getId()) |
| | | || StringUtils.isBlank(member.getName()) |
| | | || StringUtils.isBlank(member.getPhone()) |
| | | || Objects.isNull(member.getHighCheckor()) |
| | | || Objects.isNull(member.getIdcardType()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | LoginUserInfo loginUserInfo = member.getLoginUserInfo(); |
| | | member.setEditor(loginUserInfo.getId()); |
| | | member.setCustomerId(null); |
| | | member.setEditDate(new Date()); |
| | | member.setType(Constants.memberType.customer); |
| | | member.setStatus(Constants.ZERO); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setStatus(Constants.ZERO); |
| | | this.checkYwMember(member); |
| | | memberMapper.updateById(member); |
| | | return member; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Member> ywList(Member member) { |
| | | List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>() |
| | | .lambda() |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(Member::getStatus,Constants.ZERO) |
| | | .eq(Objects.nonNull(member.getCustomerId()),Member::getCustomerId,member.getCustomerId()) |
| | | .eq(Member::getType,Constants.memberType.customer) |
| | | ); |
| | | return memberList; |
| | | } |
| | | |
| | | |
| | | public void checkYwMember(Member member){ |
| | | if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"电话号码格式有误"); |
| | | } |
| | | if (StringUtils.isNotBlank(member.getIdcardNo()) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO) && !IdcardUtil.isValidCard(member.getIdcardNo())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份证号格式有误"); |
| | | } |
| | | if(StringUtils.isNotBlank(member.getIdcardNo() ) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO) ){ |
| | | if(memberMapper.selectCount(new QueryWrapper<Member>().lambda() |
| | | .ne(Objects.nonNull(member.getId()),Member::getId,member.getId()) |
| | | .eq(Member::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo())) |
| | | .eq(Member::getIsdeleted,Constants.ZERO)) >0){ |
| | | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNo()+"】已被使用,不能重复"); |
| | | } |
| | | } |
| | | if(memberMapper.selectCount(new QueryWrapper<Member>().lambda() |
| | | .ne(Objects.nonNull(member.getId()),Member::getId,member.getId()) |
| | | .eq(Member::getPhone, member.getPhone()) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) ) >0){ |
| | | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<Member> ywFindPage(PageWrap<Member> pageWrap) { |
| | | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<Member>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | Member model = pageWrap.getModel(); |
| | | IPage iPage = memberMapper.selectJoinPage(page,Member.class,new MPJLambdaWrapper<Member>() |
| | | .selectAll(Member.class) |
| | | .selectAs(YwCustomer::getName,Member::getCustomerName) |
| | | .leftJoin(YwCustomer.class,YwCustomer::getId,Member::getCustomerId) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(Member::getType,Constants.memberType.customer) |
| | | .eq(Objects.nonNull(model)&&Objects.nonNull(model.getCustomerId()),Member::getCustomerId,model.getCustomerId()) |
| | | .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),i->i.like(Member::getName,model.getName()).or().like( |
| | | Member::getPhone,model.getName() |
| | | )) |
| | | .orderByDesc(Member::getCreateDate) |
| | | ); |
| | | return PageData.from(iPage); |
| | | } |
| | | |
| | | } |