From 4167298accee956c10ed1b5e3d6ce909cad38edd Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期二, 02 四月 2024 16:37:26 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java |   75 ++++++++++++++++++++++++++++++-------
 1 files changed, 60 insertions(+), 15 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index af0009f..1f7fec6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -927,13 +927,57 @@
             }
         }
     }
-    private   List<Integer>  getRoleIdByParam(Integer[] param, Member member) {
+    private    Integer   getRoleIdByParam(Integer[] param, Member member) {
         //娣诲姞浜哄憳瑙掕壊鍏宠仈鏁版嵁
         member.setRoleId(null);
-        if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){
+        List<MemberRole> roleList = memberRoleMapper.selectList( new QueryWrapper<MemberRole>().lambda()
+               .eq(MemberRole::getIsdeleted,Constants.ZERO)
+               .eq(MemberRole::getMemberId,member.getId()));
+       if((param == null || param.length==0 ) &&( roleList==null || roleList.size()==0)){
+           //妫�鏌ョ敤鎴锋潈闄愭槸鍚﹀彂鐜板彉鍖�
+            return  0;
+       }
+        if((param == null || param.length==0 ) &&( roleList!=null && roleList.size()>0) ){
+            //濡傛灉鍘熸潵鏈夋潈闄愶紝鎺ュ彛杩涜鏉冮檺鍒犻櫎
             memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId()));
+            return 1;
         }
         if(!Objects.isNull(param)&&param.length>Constants.ZERO){
+            if(roleList!=null && roleList.size()>0) {
+                //鍜屽師鏈夋潈闄愯繘琛屽姣旓紝鐪嬫槸鍚︽潈闄愬彂鐢熷彉鍖�
+                boolean ischange1=false;
+                for (MemberRole role : roleList) {
+                    ischange1=false;
+                    for (int j = 0; j < param.length; j++) {
+                        if(Constants.equalsInteger(role.getRoleId(),param[j])){
+                            ischange1=true;
+                           break;
+                        }
+                    }
+                    if(!ischange1){
+                        break;
+                    }
+                }
+
+                boolean ischange2 =false;
+                for (int j = 0; j < param.length; j++) {
+                    ischange2=false;
+                    for (MemberRole role : roleList) {
+                        if(Constants.equalsInteger(role.getRoleId(),param[j])){
+                            ischange2=true;
+                            break;
+                        }
+                    }
+                    if(!ischange2){
+                        break;
+                    }
+                }
+                if(ischange2 && ischange1){
+                    return 0;//鏉冮檺鏈彂鐢熸敼鍙�
+                }
+            }
+            //濡傛灉鍘熸潵鏈夋潈闄愶紝鎺ュ彛杩涜鏉冮檺鍒犻櫎
+            memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId()));
             //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
             List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                     .eq(DeviceRole::getType,Constants.TWO)
@@ -964,15 +1008,16 @@
                     memberRole.setCreateDate(new Date());
                     memberRole.setMemberId(member.getId());
                     memberRole.setIsdeleted(Constants.ZERO);
-                    memberRole.setRoleId(deviceRole.getId().toString());
+                    memberRole.setRoleId(deviceRole.getId());
                     memberRoleList.add(memberRole);
                 }
+                member.setRoleId(ids);
                 memberRoleMapper.insertBatchSomeColumn(memberRoleList);
                 member.setRoleId(ids);
-                return  r;
+                return  1;
             }
         }
-        return  null;
+        return  0;
     }
 
 
@@ -992,22 +1037,22 @@
             if(Objects.isNull(member)){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
             }
-            List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
+            Integer ischange = getRoleIdByParam(param.getRoleIds(),member);
+            if(ischange == 0){
+                return;//鏈彂鐜版潈闄愬彉鍖栵紝鐩存帴杩斿洖
+            }
             if(param.getRoleIds()!=null && param.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鏈夋晥闂ㄧ缁勬暟鎹�");
             }
+            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                .eq(Member::getId,member.getId())
+                .set(Member::getRoleId,member.getRoleId())
+                .set(Member::getStartTime,param.getValidStartTime())
+                .set(Member::getEndTime,param.getValidEndTime())
+                .set(Member::getEditDate,new Date()) );
             //閲嶆柊鎺堟潈
             HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
 
-
-       /* memberMapper.update(null,new UpdateWrapper<Member>().lambda()
-                    .eq(Member::getId,member.getId())
-                    .set(Member::getRoleId,member.getRoleId())
-                    .set(Member::getRemark,"寰呭悓姝ュ畨闃插钩鍙�")
-                    .set(Member::getStartTime,param.getValidStartTime())
-                    .set(Member::getEndTime,param.getValidEndTime())
-                    .set(Member::getEditDate,new Date())
-                    .set(Member::getHkStatus,Constants.ZERO ));*/
     }
 
 

--
Gitblit v1.9.3