From cb6874174975a370cb60f1557704c9d49a05f9e6 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 05 一月 2024 08:59:40 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 104 insertions(+), 8 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index c188086..99374b6 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -19,8 +19,10 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.HttpsUtil; import com.doumee.core.utils.Utils; +import com.doumee.core.utils.redis.RedisUtil; import com.doumee.core.wx.WXConstant; import com.doumee.dao.admin.request.LaborEmpowerDTO; import com.doumee.dao.admin.request.LaborMemberDTO; @@ -32,8 +34,12 @@ import com.doumee.dao.business.model.*; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.system.model.SystemUser; +import com.doumee.dao.web.reqeust.AccountLoginDTO; import com.doumee.dao.web.reqeust.CheckVisitedDTO; +import com.doumee.dao.web.reqeust.VisitMemberDTO; +import com.doumee.dao.web.reqeust.VisitRecordDTO; import com.doumee.dao.web.response.MemberVO; +import com.doumee.dao.web.response.VisitRecordVO; import com.doumee.dao.web.response.WxAuthorizeVO; import com.doumee.service.business.MemberService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -47,6 +53,7 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -86,6 +93,10 @@ private SystemDictDataBiz systemDictDataBiz; @Autowired private UserActionJoinMapper userActionJoinMapper; + + @Autowired + private RedisTemplate<String, Object> redisTemplate; + @Override public Integer create(Member member) { @@ -799,17 +810,24 @@ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() .eq(Member::getOpenid,openId) .eq(Member::getIsdeleted,Constants.ZERO) + .ne(Member::getType,Constants.memberType.visitor) ); - - - + //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 + if(Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){ + if(member.getIsdeleted() == Constants.ONE){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); + } + if(member.getStatus() != Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); + } + JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId())); + String token = JwtTokenUtil.generateToken(payLoad); + //瀛樺偍token鑷硆edis + RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME); + wxAuthorizeVO.setToken(token); + } return wxAuthorizeVO; } - - - - - @@ -841,7 +859,85 @@ + @Override + public PageData<MemberVO> getVisitedMemberList(PageWrap<VisitMemberDTO> param) { + VisitMemberDTO visitMemberDTO = param.getModel(); + IPage<Member> page = new Page<>(param.getPage(), param.getCapacity()); + MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); + Utils.MP.blankToNull(visitMemberDTO); + queryWrapper.selectAs(Member::getId,MemberVO::getId); + queryWrapper.selectAs(Member::getName,MemberVO::getName); + queryWrapper.selectAs(Member::getPhone,MemberVO::getPhone); + queryWrapper.selectAs(Member::getCompanyId,MemberVO::getCompanyId); + queryWrapper.selectAs(Member::getFaceImg,MemberVO::getFaceImg); + + queryWrapper.eq(Member::getIsdeleted,Constants.ZERO); + queryWrapper.eq(Member::getStatus,Constants.ZERO); + queryWrapper.eq(Member::getCanVisit,Constants.ONE); + queryWrapper.eq(Member::getType,Constants.memberType.internal); + if(!Objects.isNull(visitMemberDTO)){ + queryWrapper.and(StringUtils.isNotBlank(visitMemberDTO.getName()), ms->ms.like(Member::getPhone,visitMemberDTO.getName()) + .or().like(Member::getPhone,visitMemberDTO.getName())); + } + queryWrapper.orderByDesc(Visits::getCreateDate); + IPage<MemberVO> result = memberJoinMapper.selectJoinPage(page, MemberVO.class,queryWrapper); + + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + result.getRecords().forEach(i->{ + i.setPrefixUrl(prefixUrl); + }); + + return PageData.from(result); + } + + + + + @Override + public WxAuthorizeVO accountLogin(AccountLoginDTO accountLoginDTO){ + if(accountLoginDTO.getAccount().length()!=18 + //&&!IdcardUtil.isValidCard(accountLoginDTO.getAccount()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�"); + } + Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, accountLoginDTO.getAccount())) + .ne(Member::getType,Constants.memberType.visitor) + ); + if(Objects.isNull(member)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鐢ㄦ埛,璇疯仈绯荤鐞嗗憳"); + } + if(member.getIsdeleted() == Constants.ONE){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); + } + if(member.getStatus() != Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); + } + String md5Password = DESUtil.encrypt(Constants.EDS_PWD, accountLoginDTO.getPassword()); + if(!md5Password.equals(member.getPassward())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璐︽埛瀵嗙爜閿欒!"); + } + if(StringUtils.isNotBlank(accountLoginDTO.getOpenId())){ + //鍏堟竻绌哄師鏈夎瀹㈢殑openid缁戝畾鍏崇郴 + memberMapper.update(null, new UpdateWrapper<Member>().lambda() + .ne(Member::getType,Constants.memberType.visitor) + .eq(Member::getOpenid,accountLoginDTO.getOpenId()) + .set(Member::getOpenid,null) + ); + //鏇存柊褰撳墠鐧诲綍鐢ㄦ埛 openId + member.setOpenid(accountLoginDTO.getOpenId()); + memberMapper.updateById(member); + } + WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); + JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId())); + String token = JwtTokenUtil.generateToken(payLoad); + //瀛樺偍token鑷硆edis + RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME); + wxAuthorizeVO.setToken(token); + return wxAuthorizeVO; + } -- Gitblit v1.9.3