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