From 857a1e6ddac0a5cfdd82c78218b2483534ab397f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 09 一月 2024 13:45:19 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java |  117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 111 insertions(+), 6 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
index d4654a1..2d51df3 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -50,6 +50,8 @@
     @Autowired
     private EmpowerMapper empowerMapper;
     @Autowired
+    private MemberCardMapper memberCardMapper;
+    @Autowired
     private MemberJoinMapper memberMapper;
     @Autowired
     private ERPSyncService erpSyncService;
@@ -286,7 +288,7 @@
             //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
             List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                     .eq(DeviceRole::getType,Constants.TWO)
-                    .exists("(select b.id from member_role b    where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getRoleId()+")"));
+                    .exists("(select b.id from member_role b    where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getId()+")"));
             if(CollectionUtils.isNotEmpty(deviceRoleList)){
                 List<MemberRole> memberRoleList = new ArrayList<>();
                 String ids = "";
@@ -318,7 +320,7 @@
             //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊
             return  false;
         }
-        if(StringUtils.isBlank(c.getHkId())){
+        if(!Constants.equalsInteger(Constants.ONE,c.getIsdeleted()) && StringUtils.isBlank(c.getHkId())){
             //濡傛灉鏂板鍚屾鏁告摎
             dealUserHkAddBiz(c,date,path);
         }else{
@@ -328,6 +330,11 @@
         return  false;
     }
     private void dealMemberRoleEmpower(Member member ) {
+        //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級
+        List<MemberCard> cards = dealMemberHkCard(member);
+        if(cards == null || cards.size() == 0){
+            return;
+        }
         List<Integer> doorIds = getRoleIdByParam(member);
         if(doorIds==null || doorIds.size() == 0){
             return;
@@ -335,9 +342,12 @@
         if(StringUtils.isBlank(member.getFaceImg())){
             return;
         }
-        if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
-            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
-            List<Empower> list = new ArrayList<>();
+
+        List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚�
+        List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚�
+        if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)
+                && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄愶紙鍙鐞嗘柊澧炴垨鑰呯紪杈戠殑锛�
             List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
             if(deviceList == null || deviceList.size() == 0){
                 return;
@@ -349,17 +359,109 @@
                 model.setIsdeleted(Constants.ZERO);
                 model.setDeviceId(deviceRole.getId());
                 model.setSendStatus(Constants.ZERO);
+                model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
+                model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 model.setStartTime(member.getStartTime());
                 model.setEndTime(member.getEndTime());
                 //榛樿缁欎簬铏氭嫙鍗�
                 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
                 model.setSendType(Constants.ZERO);
+                //鏍囪鏈�鏂扮殑鎺堟潈璁惧缂栫爜闆嗗悎
+                deviceIds.add(deviceRole.getId());
                 list.add(model);
             }
-            //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+
+        }
+        //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級
+        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                .eq(Empower::getMemberId,member.getId())
+                .set(Empower::getIsdeleted,Constants.ONE)
+                .eq(Empower::getIsdeleted,Constants.ZERO)
+                .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds)
+                .set(Empower::getSendStatus,Constants.ZERO));
+        //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+        if(list.size()>0){
+            //鐩存帴瑕嗙洊閲嶅鐨勮澶囨潈闄愶紝鐩存帴鍒犻櫎鍗冲彲
+            empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+                    .eq(Empower::getMemberId,member.getId())
+                    .eq(Empower::getIsdeleted,Constants.ZERO)
+                    .in(Empower::getDeviceId,deviceIds) );
             empowerMapper.insertBatchSomeColumn(list);
         }
     }
+
+    /**
+     * 瀵逛汉鍛樺甫寮�鍗℃暟鎹繘琛岃嚜鍔ㄥ紑鍗℃搷浣�
+     * @param member
+     * @return
+     */
+    private List<MemberCard> dealMemberHkCard(Member member) {
+        List<MemberCard> memberCards = memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
+                .eq(MemberCard::getMemberId,member.getId())
+                .eq(MemberCard::getType,Constants.TWO)
+                .eq(MemberCard::getHkStatus,Constants.ZERO)  );
+        if(memberCards==null ||  memberCards.size()==0){
+            //娌℃湁甯﹀鐞嗙殑鏁版嵁锛岀洿鎺ヨ烦杩�
+            return    memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
+                    .eq(MemberCard::getMemberId,member.getId())
+                    .eq(MemberCard::getType,Constants.TWO)
+                    .eq(MemberCard::getHkStatus,Constants.ONE)  );
+        }
+
+        List<Integer> allCodes = new ArrayList<>();
+        List<String> doneCodes = new ArrayList<>();
+        CardBingdingRequest param = new CardBingdingRequest();
+        if(member.getStartTime() !=null && member.getEndTime()!=null){
+            param.setStartDate(DateUtil.getISO8601Timestamp(member.getStartTime()));
+            param.setEndDate(DateUtil.getISO8601Timestamp(member.getEndTime()));
+        }
+        param.setCardList(new ArrayList<>());
+        for(MemberCard m : memberCards){
+            allCodes.add(m.getId());
+            if(StringUtils.isBlank(m.getCode())){
+                continue;
+            }
+            CardInfoRequest cr = new CardInfoRequest();
+            cr.setCardNo(m.getCode());
+            cr.setOrgIndexCode(member.getCompanyHkId());
+            cr.setPersonId(member.getHkId());
+            cr.setCardType(m.getCardType());
+            param.getCardList().add(cr);
+        }
+
+        //澶勭悊鏂板鏁版嵁
+        BaseResponse<List<CardInfoResponse>> result =  HKService.cardBingding(param);
+        if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+            if(result.getData()!=null ){
+                for(CardInfoResponse r : result.getData()){
+                    doneCodes.add(r.getCardNo());
+                }
+            }
+        }
+        if(doneCodes.size()>0){
+            memberCardMapper.update(null,new UpdateWrapper<MemberCard>().lambda()
+                    .eq(MemberCard::getMemberId,member.getId())
+                    .eq(MemberCard::getHkStatus,Constants.ZERO)
+                    .set(MemberCard::getHkStatus,Constants.ONE)
+                    .set(MemberCard::getHkDate,new Date())
+                    .set(MemberCard::getRemark,"寮�鍗℃垚鍔�")
+                    .in(MemberCard::getCode,doneCodes));
+        }
+        memberCardMapper.update(null,new UpdateWrapper<MemberCard>().lambda()
+                .eq(MemberCard::getMemberId,member.getId())
+                .eq(MemberCard::getHkStatus,Constants.ZERO)
+                .set(MemberCard::getHkStatus,Constants.TWO)
+                .set(MemberCard::getRemark,"寮�鍗″け璐�")
+                .set(MemberCard::getHkDate,new Date())
+                .notIn(doneCodes.size()>0,MemberCard::getCode,doneCodes)
+                .in(MemberCard::getId,allCodes));
+
+       return   memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
+                .eq(MemberCard::getMemberId,member.getId())
+                .eq(MemberCard::getType,Constants.TWO)
+                .eq(MemberCard::getHkStatus,Constants.ONE)  );
+    }
+
     /**
      *  濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
      * @param c
@@ -373,6 +475,9 @@
             boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date);
             c.setHkStatus(r?Constants.ONE:Constants.TWO);
             c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�");
+            c.setIsdeleted(r? Constants.ONE: Constants.ZERO);//鍒犻櫎澶辫触锛屾仮澶嶆暟鎹�
+            //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅
+            memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,c.getId()));
         }else{
             //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴�
             UserAddRequest  addHkModel = getUserAddModel(c,path,1);//淇敼

--
Gitblit v1.9.3